0
在我的iOS應用程序中,我對外部(Windows Azure)表進行了讀取調用。在繼續執行下一個操作之前,我需要填入windowsAzureChatMessageResultsCopy
數組。以下是代碼。iOS - 在表讀取完成之前調用的下一個方法
[chatTable readWithPredicate:predicate
completion:^(NSArray *results, NSInteger chatMessageCount, NSError *error)
{
if (error)
{
NSLog(@"Error: %@", error);
return;
}
else
{
self.windowsAzureChatMessageResultsCopy = [results mutableCopy];
}
}];
的應用程序,使得通話,但隨後立即轉到下一個方法,而無需輸入if... else...
檢查。數組數顯示0.完成一系列方法後,應用程序返回並執行上面代碼中的if... else...
部分。此時,windowsAzureChatMessageResultsCopy
陣列正確填充,但已爲時過晚。
我調試了代碼並驗證了流程。有沒有辦法強制應用程序等待從表中提取結果?
完成塊是異步執行的,所以你必須把所有使用'result'的代碼放到完成塊中。 –