2012-06-21 4 views
0

나는 앱 스토어에서 제출 한 아이폰 앱을 만들었습니다. 앱은 약 1 년 동안 App Store에 있습니다. 기본적으로 페이스 북 로그인 버튼이 있습니다. 좋은 하루가 지나면 내 iPhone 4, iPhone 4에서 Facebook 로그인 버튼을 클릭합니다. Macbookpro에서 실행하려고 할 때도 충돌합니다. I 오류 받고 있어요 : - : ......... "이유를 종료 응용 프로그램으로 인해 캐치되지 않는 예외 'NSInvalidArgumentException'를 '[NSNull lowercaseString] 알 수없는 선택기 예를 0x2125ce8로 전송'"Facebook 로그인 후 앱이 다운 됨

그것은 내 아이폰 3Gs에서 잘 작동 ... 제발 도와주세요. 어떻게 1 년 동안 잘 작동 후 아이폰 애플 리케이션 크래시 수 있습니다. 그것은 뭔가가 페이스 북의 업데이트 된 방법이나 아이폰 버전과 관련이 있습니까? FBrequest가 호출 된 후 정확하게 충돌! 내 평판을 잃고있어 ... 도와주세요.

+1

NSZombie를 활성화 했습니까? 활성화하지 않았고 디버그 로그를 가져 왔습니까? 그것은 당신이 NULL 객체에 대해 메소드를 호출하고 있음을 암시한다. –

+0

문제가 해결 되었습니까? –

답변

1

문자열이있는 것 같습니다 NSNull을 가리 키도록 설정된 앱. 해당 문자열을 소문자로 만들려고 할 때 응용 프로그램이 충돌합니다. NSNull이 NSNull 유형의 정적 객체를 가리 키므로 "lowercaseString"메시지를 보내려고하면 응용 프로그램이 중단됩니다. (만약 0이 아니라면 Objective-C는 단순히 메시지를 무시할 것입니다.)

값으로 설정하는 데 사용 된 어딘가에 문자열이있을 수 있지만, 어떤 이유로 이제 제거되어 설정됩니다 NSNull? FaceBook-API의 변경으로 인해 발생할 수 있지만 서버가 귀하에게 보내는 내용, Facebook 계정의 다른 정보 및 기타 많은 것들이 변경 될 수도 있습니다. 사용중인 파서는 서버가 NULL 값을 보낼 때마다 nil 대신 NSNull을 설정할 수 있습니다.

iPhone3GS에서 다른 동작을 발견했기 때문에 Facebook과 전혀 관련이 없음을 염두에 두십시오.

소문자로 만들려는 코드에서 NSString 값을 둘러 볼 수 있습니다. 디버거를 사용하여 NSNull 유형의 문자열을 식별하십시오. 다음과 같이 문자열을 NSNull과 비교할 수 있습니다.

if (text == (id)[NSNull null]) { 
    // String is NSNull! 
}