2013-10-09 3 views
1

나는이 오류가 나온 어떤 단계에서, 응용 프로그램을 개발하고 인스턴스에 보내갑자기 모든 : - [__ NSArrayM popObjectForKey이 :] : 인식 할 수없는 선택기

- [__ NSArrayM popObjectForKey이 :] : 인식 할 수없는 선택기로 전송 인스턴스

무엇이 잘못되었는지를 확인하기 위해 최신 수정 사항을 실행 취소했지만 오류가 계속 발생했습니다. 더 많은 수정 사항을 취소했지만 오류가 계속 발생했습니다.

오류가 발생할 수 있다고 생각하는 프레임 워크를 삭제하고 다시 추가하려고 시도했지만 여전히 오류가 있습니다. (KinveyKit 프레임 워크입니다)

오류가 발생하는 응용 프로그램과 오류가 발생하는 코드 줄을 대체하려고했습니다.

다른 폴더에있는 이전 Git의 앱 (며칠 전에 확실히 작동 했음)을 다운로드하고 실행하여 동일한 오류가 발생했습니다.

제거하고 다시 설치하십시오. Xcode : 오류가 계속 발생합니다.

하지만 비슷한 코드로 다른 앱을 실행해도 아무런 문제가 없습니다. 아무도 아이디어가 있습니까?

여기에 코드를 게시하면 오류가 발생하지만 아이디어를 얻을 수 있습니다.하지만 코드에 문제가 있다고 생각하지 않습니다. .H

@property (strong, nonatomic) KCSAppdataStore *store; 

하는 .m

- (void)viewDidLoad 
{ 
    ... 

    _store = [KCSAppdataStore storeWithOptions:@{ KCSStoreKeyCollectionName : @"AnEntity", 
               KCSStoreKeyCollectionTemplateClass : [AnEntity class]}]; 

    [_store queryWithQuery:[KCSQuery query] 
      withCompletionBlock:^(NSArray *objectsOrNil1, NSError *errorOrNil) { ... }]; 

    ... 
} 
+0

popObjectForKey 란 무엇입니까?어디에서 호출하고 있습니까? 붙여 넣은 코드 안에 있지 않습니다. –

+0

실제로 내 코드 안에있는 것이 아닙니다 ... KinveyKit 프레임 워크, 어딘가에 있다고 생각합니다.하지만 어쨌든 어디에서나, 틀림없이 틀림없이 잘 작동하는 프레임 워크가되어 나를 위해 일하고 있습니다. 어젯밤까지. – BkdD

+0

NSMutableArray에서 popObjectForKey를 호출 중입니다. 어떻게 구현했는지 또는 표준 NSMutableArray가 아닌 특수 유형이어야하는지 확인하십시오. –

답변

1

-

비꼬는 나는 새로운 프로젝트에서 응용 프로그램을 재건 오후를 지출되고는, 코드를 붙여 복사합니다. .. 이제 나는 더 오래된 것을 열어 보았고, 그냥 달려 갔다. 다시 한번 시도해 보라. 오늘 아침 일찍 시도 할 때마다 이미 추락 한 단어를 .... 그리고 놀랍게도 다시 실행합니다. 오류 없음.

-.- '제 질문에 대한 해결책은 무엇입니까? 몰라. 아직도 캐시 문제는 결국 해결되었지만 문제를 해결하려고하는 것은 아니라고 생각했습니다.

누구나 비슷한 경험을했거나 더 많은 아이디어가 있다면 언제든지 다음에 대비할 수있는 무언가를 추가하십시오.

1

손상된 KCSUser 개체가 키 체인에 기록 된 것과 비슷한 문제가 발생했습니다. popObjectForKey 메서드는 [KCSUser activeUser]에 전화 할 때마다 호출되는 것으로 나타납니다. application DidFinishLaunchingWithOptions:에 코드를 추가하여이 문제를 해결할 수있었습니다. 다음 코드를 실행하기 전에 언제든지 [KCSUser activeUser]으로 전화하지 않아야합니다.

NSArray *secItemClasses = @[(__bridge id)kSecClassGenericPassword, 
          (__bridge id)kSecClassInternetPassword, 
          (__bridge id)kSecClassCertificate, 
          (__bridge id)kSecClassKey, 
          (__bridge id)kSecClassIdentity]; 
for (id secItemClass in secItemClasses) { 
    NSDictionary *spec = @{(__bridge id)kSecClass: secItemClass}; 
    SecItemDelete((__bridge CFDictionaryRef)spec); 
} 

키 체인을 지우거나 재설정하는 것처럼 보입니다. 한 번 실행 한 후 제거하면 앱이 정상적으로 작동해야합니다.