可以在這裏使用一點幫助,因爲我對塊和完成處理程序的理解非常有限。iOS:UIBackgroundFetchResult塊內完成處理程序
我試圖實現後臺獲取iOS中,同時與本教程以下,並根據需要改變的東西出來:http://www.appcoda.com/ios7-background-fetch-programming/
我已經實施了必要的前體獲得背景取指令啓用並已實現了以下方法在我的viewController和已驗證它是模擬後臺抓取時被解僱:
- (void)retrieveMessagesInBackgroundWithHandler:(void (^)(UIBackgroundFetchResult))completionHandler
在我的方法,我打電話一類SoapRequest到了執行異步調用Web服務的nd完成處理程序,我能夠確定我是否有新的數據。最後,我想回送UIBackgroundFetchResult值:
SoapRequest *sr = [SoapRequest createWithURL:[NSURL URLWithString:kServiceURL] soapAction:soapAction postData:soapEnvelope deserializeTo:[NSMutableArray array] completionBlock:^(BOOL succeeded, id output, SoapFault *fault, NSError *error) {
if(!succeeded) {
NSLog(@"method failed: %@", methodName);
completionHandler = (UIBackgroundFetchResultFailed);
} else {
//NSLog(@">>>>>> OUTPUT: %@", output);
NSDictionary *responseDictionary = output;
id response = responseDictionary[@"RetrieveMessagesResponse"][@"RetrieveMessagesResult"][@"a:MessagesResult"][@"b:MessageLabel"];
if ([response isKindOfClass:[NSArray class]]) {
NSArray *array = response;
completionHandler = (UIBackgroundFetchResultNewData);
} else {
NSLog(@"Nothing new");
completionHandler = (UIBackgroundFetchResultNoData);
}
}
}];
我的問題,你可以想像,就是我正在嘗試設置completionHandler塊內。我得到的錯誤: 變量不可分配(缺少__block類型說明符)
我真的不確定如何正確實現這一點,並希望得到一些見解。任何幫助將不勝感激。
在此先感謝!
非常感謝您發現我的疏忽! – 2015-02-05 23:27:50