ios - block 未执行

标签 ios block ios9.2

我已经声明了如下方法:

- (void)downloadCSVs:(void (^)(void))completion

它的主体是:
- (void)downloadCSVs:(void (^)(void))completion
{
        [[Singleton sharedData] downloadCSVFilesFromServer:<MY_URL>];
}

并将此方法称为:
[self downloadCSVs:^
{
        NSLog(@"Download Completed!");
}];

但是下载后,它不执行NSLog。
请让我知道我错了。

最佳答案

没有调用您的块,因为没有尝试调用它。

下面的方法接受该块作为参数,并依次调用[Singleton downloadCSVFilesFromServer:],但它不会将该块传递给该方法,也不会自身调用:

- (void)downloadCSVs:(void (^)(void))completion
{
    [[Singleton sharedData] downloadCSVFilesFromServer:<MY_URL>];
}

您需要扩展[Singleton downloadCSVFilesFromServer:]方法以接受block参数,并在完成时调用它。

关于ios - block 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36303201/

相关文章:

ios - 单击按钮移动 Collection View (快速)

ios - 为什么 drawRect 会留下部分图像?

layout - 如何以编程方式有条件地从布局中删除 block 或容器?

ios - 解释苹果文档

ios - 从 MagicalRecord 到 Realm.io 的等价物 "completion handler"

ios - 建议在何处存储 iOS 应用程序的数据

ios - 使用闭包而不是 UIBarButtonItem 的选择器参数但不使用弱 self

ios - swift 'Must register a nib or a class for the identifier or connect a prototype cell in a storyboard'

ios - Xcode 8 在 iOS 9.2 及以下版本上构建崩溃

swift - Xcode 7.2 无效的 Swift 支持 - SwiftSupport 文件夹丢失