내 iPhone 앱이 정지되는 iOS 8에서 버그가 있습니다. 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 배속, # 35
0x196954eb4 : SVC# 128
0x196954eb8 : RET
그리고 RestKit을 호출하지 않으면 버튼이 작동합니까? – Wain
예 버튼은 휴식 키트 없이도 작동합니다. 간단히 "뒤로"바 버튼입니다. 나는 이미 iOS 7에서 앱을 테스트했으며 동일한 코드가 문제없이 작동합니다. – sonoDamiano
그리고'getObjectsAtPath'가 호출되었지만 콜백 중 어느 것도 호출되지 않았습니까? 추적 로깅을 켜고 프로파일 러를 사용하여 '잠긴'동안 앱이 수행중인 작업을 확인합니다. – Wain