2014-12-26 2 views
0

추적과 forKey 충돌이 나는 setValue:forUndefinedKey: 또는 setNilValueForKey:의 상황을 이해이의 setValue : _sigtramp

Application received signal SIGSEGV 

Stack trace: 
#0 CoreFoundation      002BCE149F <redacted>() 
#1 libobjc.A.dylib      00394F8C8B objc_exception_throw() 
#2 CoreFoundation      002BCE13E5 -[NSException initWithCoder:] 
#3 funadhoc       000025B129 UmengSignalHandler() 
#4 libsystem_platform.dylib   0039BB8873 _sigtramp() 
#5 libobjc.A.dylib      0039505571 objc_setProperty_nonatomic_copy() 
#6 Foundation       002C947F59 -[NSObject setValue:forKey:] 
#7 Foundation       002C9C58F3 -[NSObject setValuesForKeysWithDictionary:] 
.......................... 

유사하지만이 무엇인가?

게다가, 일부 시스템 기호는 <redacted>입니다. 어떻게 기호화 할 수 있습니까?

+1

코드를 게시하지 않으면 약간의 문제가 있습니다. –

답변

0

이 경우 _sigtramp()는 응용 프로그램이 Unix 신호 (이 경우 SIGSEGV)를 수신했음을 의미합니다. SIGSEGV는 메모리 액세스 위반 때문에 앱이이 신호를 보낸 것을 의미합니다. 이 경우 setValue : forKey :를 호출 한 것이 원인이라고 추측합니다. 아마도 setValue : forKey : on (해당 메소드의 수신자)이라는 객체가 이미 할당 해제 되었습니까? 아니면 키 또는 값 중 하나가 할당 해제 되었습니까? 아마 당신이 확인해야 할 것입니다.

NSZombieEnabled (환경 변수)를 켜보십시오. 대상을 주변에 유지하고 "좀비"로 표시 한 다음 좀비에 액세스하려고했음을보고합니다. ARC를 사용하는 경우 안전하지 않은 개체 참조가있을 수 있습니다. 당신은 그것에 대한 강한 참조가 필요합니다. ARC가 아닌 경우 제대로 유지하지 못할 수도 있습니다.