7月笔记



//7-9

静态方法调用普通方法会出错,调用静态方法没有问题

需要注意的是 performSelector: 这个方法看起来是普通方法,- (id)performSelector:(SEL)aSelector;

但是可以在静态方法中调用


+ (void)testStatic

{

NSLog(@"testStatic");

//this can run rightly

[NetManager performSelector:@selector(testStatic2)];

//this will crash

[NetManager testNormal];

}


+ (void)testStatic2

{

NSLog(@"testStatic22222");

}


- (void)testNormal

{

NSLog(@"testNormal");

}



2012-07-09 16:32:54.558 test[59696:10a03] testStatic

2012-07-09 16:32:55.644 test[59696:10a03] testStatic22222

2012-07-09 16:33:16.581 test[59696:10a03] +[NetManager testNormal]: unrecognized selector sent to class 0x5f4c40

2012-07-09 16:33:16.676 test[59696:10a03] 



+ (NSArray *)testPret

函数声明和定义的返回值类型不一样还是可以调用的,如果声明不是id类型的,会有告警



nodesForXPath根据路径获取结点

NSError *error = nil;

        GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString:xmlString

                                                                    options:0 

                                                                      error:&error];

        NSString * from = nil;

        NSArray* froms = [doc nodesForXPath:@"/country/city" error:nil];

        if ([froms count] > 0)

        {

            from = [[froms objectAtIndex:0] stringValue];            

        }

        NSString * auth = nil;

        NSArray* auths = [doc nodesForXPath:@"/country/city/zone" error:nil];

        if ([auths count] > 0)

        {

            auth = [[auths objectAtIndex:0] stringValue];

        }







extern void printLog (NSUInteger DebugLevel, NSString * format, ...);



[NSBundle mainBundle]得到的是程序包路径, /Users/userName/Library/Application Support/iPhone Simulator/4.2/Applications/BE308073-FA13-49B3-AF6D-2591AF165E07/test.app

NSString *fileName = [NSString stringWithFormat:@"%@_x", imageId];

filePath = [[NSBundle mainBundle] pathForResource:fileName

  ofType:@"png"];

if (filePath != nil)

{

UIImage *pImage = [[UIImage alloc] initWithContentsOfFile:filePath];

return pImage;

}

使用initWithContentsOfFile:filePath 方法从bundle中加载图片,可以release image变量

[[UIImage alloc] initWithContentsOfFile:filePath];


据说

+ (UIImage *)imageNamed:(NSString *)name;autorelease在程序结束的时候才会执行



---

测试autorelease的释放情况,value = [NetResponseManager reponseOfGetPortrait:xml];

函数返回值是一个autorelease对象,函数中生成的,当退出调用函数的时候,对象的dealloc方法被调用




7-12 

reqData.contentIDs nil,  i < [reqData.contentIDs count] 不成立,没有进入循环

[reqData.contentIDs count] 的值为0

for (int i = 0; i < [reqData.contentIDs count]; i++)

{

GDataXMLElement * tmpElement = [GDataXMLElement elementWithName:@"ID" 

stringValue:[reqData.contentIDs objectAtIndex:i]];

[contentIDsElement addChild:tmpElement];

}


(gdb) po [reqData.contentIDs count]

Can't print the description of a NIL object.

(gdb) po nil

0x1374420 does not appear to point to a valid object.

(gdb) po [NSString stringWithFormat: @"99%d77", [reqData.contentIDs count]]

99077

(gdb) 






//test array

NSMutableArray * muArray = [[[NSMutableArray alloc] init] autorelease];

NSString * p1 = @"1";

NSString * p2 = @"2";

NSString * p3 = @"3";

[muArray addObject:p1];

[muArray addObject:p2];

[muArray addObject:p3];

//数组里存放的是指针(被指向对象的地址),以下操作不会改变数组的内容

p1 = @"111";

p2 = nil;

NSString * pstr = [muArray objectAtIndex:1];

//


- (int)test;可以使用点. 操作符去调用   int i = data.test; 这样是没有问题的

data.test = 3;

必须要在头文件中声明,不然编译报错


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值