我花了很多时间阅读有关积木的内容,但由于某种原因,我很难完全理解它们。值得一提的是我是新手开发者,但是我遇到的第一个真正的“块”,所以也许你可以帮助我。
我遇到一个对象(ViewController的实例)正在与一个类进行通信的情况(通过类方法 - 它是我设置为请求/获取数据的实用程序类)。我想使用块实现一个带回调的方法。以下是我目前基于我的代码的“理解”:
好的,所以这是我的实用程序类中的(简化)方法:
+ (void)getDataWithCompletion:(void (^)(BOOL))completion {
//Some code...
completion(YES);
}
这就是我从viewController调用方法的方法:
[ClassName getDataWithCompletion:^(BOOL gotData) {
if (gotData) {
NSLog(@"Called");
}
}];
当然,我当时希望NSLog能够打印在我的控制台上,但是唉...我知道我在这里做错了,有人可以指出这一点吗?任何新手级别的解释都将受到高度赞赏。
答案 0 :(得分:-1)
错误很简单。您忘记了参数名称
改变你的方法。
(BOOL gotData)这是你错过的。
+ (void)getDataWithCompletion:(void (^)(BOOL gotData))completion {
//Some code...
completion(YES);
}
以下是苹果文档apple block documentation
的链接