【发布时间】:2015-03-08 07:26:51
【问题描述】:
这里有很多块!
我正在尝试使用块对字典中存在的每条记录执行操作。
我创建了 strongRecordBlock 的弱引用,并使用它在 strongRecordBlock 中调用自身。一切正常,直到我介绍了我需要执行的实际操作(DataManager addRecord),这又是一个块。 所以现在有个异常,递归循环第一次迭代后weakRecordBlock为null。有没有人可以指导一下!
__weak __block void (^weakRecordBlock)(int i);
void (^strongRecordBlock)(int) = ^(int i) {
NSString *key = weakSelf.recordDictionary.allKeys[i];
CSVRecord *record = [weakSelf.recordDictionary objectForKey:key];
NSLog(@"%d %@", i, record.recordFullname);
[[DataManager sharedInstance] addRecord:record onSuccess:^(NSString *objectId) {
if (i < weakSelf.recordDictionary.allKeys.count-1) {
weakRecordBlock(i+1);//Crashes here
}
else {
completedBlock();
}
} onError:^(NSError *error) {
onError(error);
}];
};
weakRecordBlock = strongRecordBlock;
strongRecordBlock(0);
【问题讨论】:
标签: ios objective-c iphone objective-c-blocks