1.在使用block前需要对block指针做判空处理. 不判空直接使用,一旦指针为空直接产生崩溃. if (!self.isOnlyNet) { if (succBlock == NULL) { //后面使用block之前要先做判空处理 return; } id data = [NSKeyedUnarchiver unarchiveObjectWithFile:[self favoriteFile]]; if ([data isKindOfClass:[NSMutableArray class]
背景:回调机制中回调设置代码和回调方法的具体实现无法写在同一段代码中.Mac OS X 10.6和iOS4种引入了Block对象.Block对象看上去是一段代码,但是可以当作数据来传递. 定义Block对象: ^{ NSLog(@“I’m a log statement within a block!"); } 这段代码看似是一个函数,但是没有函数名,相应的位置只有一个^符号,^符号表示这段代码是一个Block对象.与函数一样,Block对象也可以有实参: ^(double divid