2013-02-06 45 views
1

我想要做的是從遠程服務器加載人員列表(JSON格式),將文件保存到磁盤上,然後解析結果並返回NSArray *返回給調用者。Objective-C回調/阻止模式

我已經創建了一個EmployeeDirectoryManager具有以下:

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

我想在loadDirectory方法使用塊時loadDirectoryFromServer,這是使用一個AFJSONRequestOperation具有這樣主叫方可以被通知success塊就可以了。

我需要一點點指導如何實現這一點,或者如果我走向錯誤的道路。

回答

1

要在您的方法爲完成處理程序使用的塊,首先你需要定義新類型

typedef void(^TypeComplitionHandler)(id result)

那麼你可以傳遞塊到你的方法。例如,

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

您可以在標頭中的方法上內聯定義塊嗎? – Sam

+1

當然 ' - (void)loadDirectoryFromFileCompletionHandler:(void(^)(id result))completion(nil); }' –