簡體   English   中英

setValue:forKey與_sigtramp一起崩潰

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM