使用Just加载数据时,iOS-App崩溃

时间:2019-08-06 10:34:31

标签: swift xcode networking

我有一个有时会崩溃的应用程序。并非总是如此,但它时不时地崩溃。我认为这与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。

1 个答案:

答案 0 :(得分:0)

好吧,如果有人感兴趣,我明白了。问题在于新手机速度太快,该应用尝试读取尚不存在的值。因此,我增加了一个小延迟,一切正常。