[英]setValue:forKey crash with _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:]
..........................
我了解setValue:forUndefinedKey:
或setNilValueForKey:
,但這是什么?
此外,某些系統符號是<redacted>
,我如何使其符號化?
在這種情況下,_sigtramp()意味着您的應用程序收到了Unix信號,在這種情況下為SIGSEGV。 SIGSEGV意味着您的應用由於內存訪問沖突而發送了此信號。 在這種情況下,我猜這是由您對setValue:forKey:的調用引起的。 您調用setValue:forKey:on的對象(該方法的接收者)可能已經被釋放了? 還是鍵或值已被釋放? 那可能就是您應該檢查的內容。
嘗試打開NSZombieEnabled(環境變量)。 它將保留該對象並標記為“僵屍”,然后向您報告您嘗試訪問僵屍。 如果使用的是ARC,則可能對對象有一些不安全且未保留的引用。 您需要對此有強烈的參考。 如果它不是ARC,則可能無法正確保留它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.