我花了很多时间阅读有关块的内容,但由于某种原因,我很难完全理解它们。值得一提的是,我是一名新手开发人员,但积木是我遇到的第一个真正的“积木”,所以也许你可以帮助我。
我有一个对象(ViewController 的实例)正在与一个类(通过类方法-它是我为请求/获取数据而设置的实用程序类)交谈的情况。我想使用一个块来实现一个带有回调的方法。以下是我基于我的代码的当前“理解”:
- 块可以作为方法参数传递;
- 块可以像函数一样被调用。
好的,这是我的实用程序类中的(简化)方法:
+ (void)getDataWithCompletion:(void (^)(BOOL))completion {
//Some code...
completion(YES);
}
这就是我从 viewController 调用该方法的方式:
[ClassName getDataWithCompletion:^(BOOL gotData) {
if (gotData) {
NSLog(@"Called");
}
}];
自然,我期待 NSLog 打印在我的控制台上,但是唉......我知道我在这里做错了什么,有人可以指出吗?任何新秀级别的解释都将受到高度赞赏。