我在iOS 8下有一些错误冻结了我的iPhone应用程序。在使用RestKit从后端加载数据期间,我不知道为什么不执行:getObjectsAtPath方法中的代码。我假设应该从此方法的成功或失败块返回代码。看起来其他工具包正在尝试从后端获取数据,因为我可以看到网络活动指示器微调器仍处于活动状态。我不知道怎么可能调查这个问题因为Xcode没有返回任何错误。该应用程序仍在工作,但我无法点击后退按钮跳转到父视图。
-(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:ret
答案 0 :(得分:0)
看起来可能陷入僵局。 refreshData:
中的EFAlertsHistoryTVC
方法正在响应通知。也许该方法中的某些东西会同步等待在方法返回之前无法使用的数据。