2009-12-11 2 views
2

I iTunesConnect 애플에 내 응용 프로그램은 다시 다음과 같은 충돌 보고서를 줘 제출 :NSLog 애플 응용 프로그램 검토 중에 아이폰 응용 프로그램 충돌하게

앱이 로그를 인쇄하려고 할 때, 그것은 할 것으로 보인다
Thread 2 Crashed: 
0 libobjc.A.dylib     0x00003eb8 objc_msgSend + 16 
1 Foundation      0x0004c3aa _NSDescriptionWithLocaleFunc + 24 
2 CoreFoundation     0x0003d52e _CFStringAppendFormatAndArgumentsAux + 1390 
3 CoreFoundation     0x0003ceca _CFStringCreateWithFormatAndArgumentsAux + 66 
4 CoreFoundation     0x00073fd6 _CFLogvEx + 34 
5 Foundation      0x000661a4 NSLogv + 74 
6 Foundation      0x0006614a NSLog + 18 
7 mobilescan      0x00039014 -[BlaBlaBlaDao insertCategoryWithId:andName:] (BlaBlaBlaDao.m:110) 

응용 프로그램 충돌.

: 응용 프로그램 충돌 내가 그 선이 어디 이것은 BlaBlaBlaDao.m의 라인 (110)에서

... 응용 프로그램이 2 초 후 오류를 인쇄 작업을 계속 stopes 때문에 디버그 모드에서 매우 이상하다

NSLog(@"category, id:%@, name:%@", subcategory.id, subcategory.name); 

    [subcategory addFreshfoodProductsObject:freshfoodProduct]; 

    NSError *error = nil; 
    if (![managedObjectContext save:&error]) { 
     [managedObjectContext rollback]; 
     NSLog(@"error: %@", error); 
    } 

Apple 예제에서 가져온 것입니다 ...

모두가 그 이유를 알고 있습니까?

도움 주셔서 감사합니다.

+0

글쎄, objective-c라는 유형의 예약어이기 때문에 처음에는 id라는 멤버를 가질 수 없습니다. 먼저 이름을 바꾸어 시작해야합니다. –

+0

어떤 NSLog가 실패합니까? 오류가있는 첫 번째 또는 두 번째? – epatel

답변

8

형식 문자열에 두 개의 개체가 있어야합니다. 로깅을 위해 객체의 설명 메소드가 호출됩니다. 개체 중 하나의 설명을 인쇄하려고 할 때 응용 프로그램이 충돌하는 것 같습니다. 속성 중 하나 또는 둘 모두 개체가 아니라 스칼라 값이 될 수 있습니다. 또한 속성 중 하나가 객체 인 경우 어느 시점에서 해제되고 할당 취소 된 인스턴스를 메시징하는 것이 가능할 수도 있습니다.

충돌과는 별도로 앱 스토어에 제출할 애플리케이션에 NSLog를 사용하지 마십시오. 거기에있을 이유는 없으며 응용 프로그램을 실행하는 모든 iPhone의 콘솔에 텍스트를 덤핑하는 것뿐입니다. 내가 잘못 본 것이 아니라면이 모든 것을 각 iPhone에 기록하여이를 실행할 것입니다. 뿐만 아니라 불필요하게 애플리케이션 속도를 늦추고 있습니다. 응용 프로그램을 제출하기 전에 이러한 호출을 제거하거나 # ifdef를 사용하여 해당 호출을 디버그 빌드에만 국한하십시오.