【问题标题】:Objective-C Callbacks/Block PatternObjective-C 回调/块模式
【发布时间】:2013-01-22 05:13:30
【问题描述】:

我要做的是从远程服务器加载人员列表(JSON 格式),将文件保存到磁盘上,然后解析结果并将 NSArray * 返回给调用者。

我创建了一个EmployeeDirectoryManager,它具有以下内容:

- (NSArray *)loadDirectory:(BOOL)refreshFromServer;
- (void)loadDirectoryFromFile;
- (void)loadDirectoryFromServer;

我想在loadDirectory 方法上使用一个块,以便调用者可以在loadDirectoryFromServer 使用AFJSONRequestOperation 时得到通知,该AFJSONRequestOperation 上面有一个success 块。

我需要一些关于如何实现这一点的指导,或者如果我走错了路。

【问题讨论】:

    标签: ios objective-c objective-c-blocks


    【解决方案1】:

    要在方法中使用块作为完成处理程序,首先需要定义新类型

    typedef void(^TypeComplitionHandler)(id result)

    然后您可以将块传递给您的方法。例如

    - (void)loadDirectoryFromFileComplitionHandler:(TypeComplitionHandler)complition {
        complition(@"done");
    }
    

    【讨论】:

    • 可以在header中的方法上定义block inline吗?
    • 确定- (void)loadDirectoryFromFileCompletionHandler:(void(^)(id result))completion { completion(nil); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多