首页 > 解决方案 > 在 NSKeyValueCoding 中崩溃 IOS 13 和 Xcode 11

问题描述

在运行 IOS 13.5 的 iPhone 和 iPad 上使用几分钟后,该应用程序崩溃了几次。然而,它在运行 IOS 12 时没有问题。我分析了设备的崩溃日志报告,无论是 iPhone 还是 iPad,它们都在如下所示的崩溃日志中显示了相同的崩溃:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  18

Last Exception Backtrace:
0   CoreFoundation                  0x1a39bb794 __exceptionPreprocess + 224
1   libobjc.A.dylib                 0x1a36ddbcc objc_exception_throw + 55
2   CoreFoundation                  0x1a38c4764 +[NSObject+ 210788 (NSObject) doesNotRecognizeSelector:] + 139
3   CoreServices                    0x1a4026968 +[_LSDefaults sharedInstance] + 55
4   Foundation                      0x1a3c79f18 -[NSObject+ 44824 (NSKeyValueCoding) valueForKey:] + 303
5   AppName                         0x104905348 fb1UCM8vZCiE + 355
6   AppName                         0x10490d0b8 fbkUVUzGnhkS + 1655
7   AppName                         0x10490295c fbIiaWxkoUb6 + 307
8   libsystem_pthread.dylib         0x1a36d1d98 _pthread_start + 155
9   libsystem_pthread.dylib         0x1a36d574c thread_start + 7

Thread 18 Crashed:
0   libsystem_kernel.dylib          0x00000001a37b0d88 __pthread_kill + 8
1   libsystem_pthread.dylib         0x00000001a36c91e8 pthread_kill$VARIANT$mp + 136
2   libsystem_c.dylib               0x00000001a361c934 abort + 100
3   libc++abi.dylib                 0x00000001a3784cc0 __cxxabiv1::__aligned_malloc_with_fallback+ 76992 (unsigned long) + 0
4   libc++abi.dylib                 0x00000001a3776e10 demangling_unexpected_handler+ 19984 () + 0
5   libobjc.A.dylib                 0x00000001a36dde80 _objc_terminate+ 24192 () + 124
6   libc++abi.dylib                 0x00000001a378414c std::__terminate(void (*)+ 74060 ()) + 16
7   libc++abi.dylib                 0x00000001a3786bd8 __cxa_get_exception_ptr + 0
8   libc++abi.dylib                 0x00000001a3786b98 __cxxabiv1::exception_cleanup_func+ 84888 (_Unwind_Reason_Code, _Unwind_Exception*) + 0
9   libobjc.A.dylib                 0x00000001a36ddcf8 _objc_exception_destructor+ 23800 (void*) + 0
10  CoreFoundation                  0x00000001a38c4764 +[NSOrderedSet orderedSetWithSet:] + 0
11  CoreServices                    0x00000001a4026968 +[_LSDefaults sharedInstance] + 56
12  Foundation                      0x00000001a3c79f18 -[NSObject+ 44824 (NSKeyValueCoding) valueForKey:] + 304
13  AppName                         0x0000000104905348 fb1UCM8vZCiE + 356
14  AppName                         0x000000010490d0b8 fbkUVUzGnhkS + 1656
15  AppName                         0x000000010490295c fbIiaWxkoUb6 + 308
16  libsystem_pthread.dylib         0x00000001a36d1d98 _pthread_start + 156
17  libsystem_pthread.dylib         0x00000001a36d574c thread_start + 8

但我仍然对这个问题感到困惑。可能是调用了一个不存在的方法,归结为key-value-coding,但是在Xcode中编译没有发现任何错误。所以我想知道如何解决它。

标签: objective-ccrashios13xcode11

解决方案


我没有看到整个日志,但您似乎有内存泄漏(malloc)。如果您处于保留周期和/或例如如果您在主线程上使用 UI 函数,则可能会发生这种情况。

按照 medium.com 上的本教程如何调试内存泄漏

运行方案设置

我希望我能帮助您找到正确的方法来自己调试它。


推荐阅读