Objective-C:通过变量来阻止
问题描述:
我对块很不熟悉。我没有掌握语法。Objective-C:通过变量来阻止
我想要做的是将方法的第一部分中获得的日期传递到完成块,以便在完成块运行(即完成其他所有操作)之前不设置日期。任何人都可以建议如何做到这一点?以下给出了未声明标识符secondItem的错误使用。
编辑:使用__block关键字
- (void)myMethod: (NSInteger *) state {
switch (state) {
case 1: {
//do some stuff
} completion:^(BOOL finished) {
//finish up
}];
}
break;
}
default: {
Items* firstItem = [self.fetchedResultsController objectAtIndexPath:indexPath];
__ block NSDate* myDate = firstitem.date;
Items* secondItem = [self.fetchedResultsController objectAtIndexPath:sourceIndexPath];
} completion:^(BOOL finished) {
secondItem.date = __block myDate;//ERROR THROWN HERE
}];
break;
}
}
答
尝试。该文档可以发现here
+0
我一直在尝试......只是编辑了问题。在myDate没有摆脱那里的错误之前添加__block。但是,我仍然得到secondItem的错误是什么语法? – user6631314
你可以请张贴真实的代码。你发布的代码是糟糕的缩进和语法错误。 – rmaddy
如果我理解正确,你想创建完成块方法吗?如果是这样看看这个:https://xcodenoobies.blogspot.my/2017/07/how-to-basic-of-xcode-methods-functions.html – GeneCode