2
我有一些在iOS 8下凍結我的iPhone應用程序的錯誤。在使用RestKit從後端加載數據期間,我不知道爲什麼getObjectsAtPath方法中的代碼沒有執行。我假設應該從這個方法的成功或失敗塊中返回代碼。它看起來像其餘的工具包試圖從後端獲取數據,因爲我可以看到網絡活動指示器微調器仍處於活動狀態。我不知道我怎麼可能調查這個問題,因爲Xcode不會返回任何錯誤。該應用程序仍在工作,但我無法點擊後退按鈕跳轉到父視圖。Restkit正在凍結
-(void)loadAlerts{
_credentials = [[EFCredentials alloc]init];
NSString *rememberToken = [_credentials authToken];
if ([EFReachabilityManager isReachable]) {
[[[RKObjectManager sharedManager]HTTPClient]setDefaultHeader:@"Authorize" value:rememberToken];
RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:[EFMappingProvider alertsMapping]
method:RKRequestMethodGET
pathPattern:[NSString stringWithFormat:@"/%@/alerts.json",_id]
keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager]addResponseDescriptor:responseDescriptor];
[[RKObjectManager sharedManager] getObjectsAtPath:[NSString stringWithFormat:@"/wearers/%@/alerts.json",_wearer_id] parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){
NSLog(@"%@",mappingResult.array);
[self.tableView reloadData];
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
UIAlertView *alertView =
[[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
];
}
else{
_alertViewReachability = [[UIAlertView alloc]initWithTitle:@"Error" message:@"No network connection " delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Try again", nil];
[_alertViewReachability show];
}
}
libsystem_kernel.dylib`semaphore_wait_trap: 0x196954eb0:MOVN X16,#35
0x196954eb4:SVC#128
0x196954eb8:滯留
如果你沒有調用RestKit,那麼按鈕的工作原理? – Wain 2014-10-14 16:26:48
是的按鈕工作,沒有休息套件因爲它只是一個簡單的「後退」欄按鈕。我已經在iOS 7上測試了該應用程序,並且相同的代碼沒有任何問題。 – sonoDamiano 2014-10-14 16:45:32
並調用'getObjectsAtPath',但是沒有任何回調被調用?打開跟蹤日誌記錄並使用分析器查看「鎖定」時應用程序正在執行的操作。 – Wain 2014-10-14 16:47:12