2014-10-12 2 views
2

내 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]; 
} 

}

enter image description here

libsystem_kernel.dylib`semaphore_wait_trap : 0x196954eb0 : MOVN 배속, # 35

0x196954eb4 : SVC# 128

0x196954eb8 : RET

+0

그리고 RestKit을 호출하지 않으면 버튼이 작동합니까? – Wain

+0

예 버튼은 휴식 키트 없이도 작동합니다. 간단히 "뒤로"바 버튼입니다. 나는 이미 iOS 7에서 앱을 테스트했으며 동일한 코드가 문제없이 작동합니다. – sonoDamiano

+2

그리고'getObjectsAtPath'가 호출되었지만 콜백 중 어느 것도 호출되지 않았습니까? 추적 로깅을 켜고 프로파일 러를 사용하여 '잠긴'동안 앱이 수행중인 작업을 확인합니다. – Wain

답변

0

마치 pos처럼 보입니다. 시들은 교착 상태. EFAlertsHistoryTVCrefreshData: 메서드는 알림에 응답합니다. 아마도 해당 메서드의 무언가가 메서드가 반환 될 때까지 사용할 수없는 데이터를 동 기적으로 기다리고있을 것입니다.