我花了相當多的時間閱讀塊,但由於某些原因,我很難完全理解它們。值得一提的是我是新手開發者,但是塊是我遇到的第一個真正的'塊',所以也許你可以幫助我。使用塊從不同類的回調
我有一個對象(ViewController的實例)正在與一個類交談(通過一個類方法 - 這是我設置爲請求/獲取數據的實用工具類)的情況。我想用塊實現一個回調方法。這裏是我目前對'我的代碼'的理解:
- 一個塊可以作爲方法參數傳遞;
- 塊可以像函數一樣調用。
好了,這裏是我的實用工具類我(簡化)方法:
+ (void)getDataWithCompletion:(void (^)(BOOL))completion {
//Some code...
completion(YES);
}
這是我如何調用該方法從我的viewController:
[ClassName getDataWithCompletion:^(BOOL gotData) {
if (gotData) {
NSLog(@"Called");
}
}];
當然,我是期待NSLog被打印在我的控制檯上,但唉...我知道我在這裏做錯了什麼,有人可以指出這一點嗎?任何菜鳥級的解釋將不勝感激。
不要用'GET'前綴的方法......保留用於特殊情況下的方法,通過引用返回多個項目。還要注意,如果你的方法是異步執行的,你需要複製這個塊來保持它直到完成。 – bbum
感謝您使用'get'來啓動方法名稱的建議,我將不得不通過我的代碼並在幾個地方進行更改。是'取'一個安全的詞使用? – artooras
'fetch',''''''''''''或簡單地'dataWithCompletion:'。或者'loadDataAsynchronouslyWithCompletion:'如果你去那裏。或者'loadDataSynchronouslyWithCompletion:'。除*獲取*以外的任何內容。 :) – bbum