我有一个有时会崩溃的应用程序。并非总是如此,但它时不时地崩溃。我认为这与Just相关。我用这个吊舱来做一些网络工作。当我设置一个异常断点时,它会跳到Just pod中的一个函数上:
func makeTask(_ request: URLRequest, configuration: TaskConfiguration)
-> URLSessionDataTask? {
let task = session.dataTask(with: request)
taskConfigs[task.taskIdentifier] = configuration
return task
}
控制台显示错误消息:“ [_ NSCoreDataTaggedObjectID计数]:无法识别的选择器已发送到实例0x8000000000000000”。
在崩溃日志中显示:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x8000000000000008
VM Region Info: 0x8000000000000008 is not in any region. Bytes after previous region: 9223372025580486665
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
MALLOC_NANO 0000000280000000-00000002a0000000 [512.0M] rw-/rwx SM=PRV
--->
UNUSED SPACE AT END
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [28922]
Triggered by Thread: 4
线程4如下所示:
Thread 4 name: Dispatch queue: NSOperationQueue 0x283042520 (QOS: UNSPECIFIED)
Thread 4 Crashed:
0 libswiftCore.dylib
1 Just
2 Just
3 Just
4 Just
5 Just
6 Just
7 [app name]
8 [app name]
9 [app name]
10 Foundation
11 Foundation
12 Foundation
13 Foundation
14 libdispatch.dylib
15 libdispatch.dylib
16 libdispatch.dylib
17 libdispatch.dylib
18 libdispatch.dylib
19 libdispatch.dylib
20 libsystem_pthread.dylib
21 libsystem_pthread.dylib
我不知道为什么会这样。因此,感谢您的帮助。
编辑:当我在较新的iPhone(例如iPhone 8或iPhone X)上启动应用程序时会发生这种情况。当我在5s上运行它时,它不会崩溃。所有设备都至少具有iOS 12。
答案 0 :(得分:0)
好吧,如果有人感兴趣,我明白了。问题在于新手机速度太快,该应用尝试读取尚不存在的值。因此,我增加了一个小延迟,一切正常。