使用空字典调用 nw_dictionary_copy

Nep*_*eph 8 null dictionary ios swift

斯威夫特 5、Xcode 10

Xcode 记录了一个奇怪的错误,只有当我在做一些非常具体的事情时才会发生:

我的应用程序在单击“登录”按钮后连接到 FTP 服务器,但如果没有互联网连接,它会显示一个包含两个选项的对话框:1. 切换到离线模式,2. 重试。如果我选择“重试”,将设备连接到互联网,然后再次点击“登录”按钮,则会引发此错误。如果我切换到离线模式或者在点击“登录”按钮之前已经有互联网连接,则不会出现错误消息。

之后一切正常,但我仍然想摆脱它 - 如果可能的话:

2019-07-10 16:43:18.233414+0200 myapp[5256:111188] [] nw_dictionary_copy called with null dictionary
2019-07-10 16:43:18.235183+0200 myapp[5256:111188] [] __nwlog_err_simulate_crash simulate crash failed "nw_dictionary_copy called with null dictionary"
2019-07-10 16:43:18.237115+0200 myapp[5256:111188] [] nw_dictionary_copy called with null dictionary, dumping backtrace:
        [x86_64] libnetcore-1229.250.15
    0   libnetwork.dylib                    0x000000010c35c3b8 __nw_create_backtrace_string + 120
    1   libnetwork.dylib                    0x000000010c2b74e3 nw_dictionary_copy + 643
    2   libnetwork.dylib                    0x000000010c2fffe8 __nw_path_watch_simulator_network_changes_block_invoke + 40
    3   libsystem_notify.dylib              0x00000001090429b3 notify_register_mach_port + 7676
    4   libdispatch.dylib                   0x0000000108d82725 _dispatch_block_async_invoke2 + 83
    5   libdispatch.dylib                   0x0000000108d74db5 _dispatch_client_callout + 8
    6   libdispatch.dylib                   0x0000000108d7e792 _dispatch_workloop_invoke + 3251
    7   libdispatch.dylib                   0x0000000108d86ea3 _dispatch_workloop_worker_thread + 733
    8   libsystem_pthread.dylib             0x000000010915d611 _pthread_wqthread + 421
    9   libsystem_pthread.dylib             0x000000010915d3fd start_wqthread + 13
2019-07-10 16:43:18.241412+0200 myapp[5256:111188] [] nw_dictionary_apply called with null dictionary
2019-07-10 16:43:18.241561+0200 myapp[5256:111188] [] __nwlog_err_simulate_crash simulate crash failed "nw_dictionary_apply called with null dictionary"
2019-07-10 16:43:18.241923+0200 myapp[5256:111188] [] nw_dictionary_apply called with null dictionary, dumping backtrace:
        [x86_64] libnetcore-1229.250.15
    0   libnetwork.dylib                    0x000000010c35c3b8 __nw_create_backtrace_string + 120
    1   libnetwork.dylib                    0x000000010c2b6bf9 nw_dictionary_apply + 249
    2   libnetwork.dylib                    0x000000010c300002 __nw_path_watch_simulator_network_changes_block_invoke + 66
    3   libsystem_notify.dylib              0x00000001090429b3 notify_register_mach_port + 7676
    4   libdispatch.dylib                   0x0000000108d82725 _dispatch_block_async_invoke2 + 83
    5   libdispatch.dylib                   0x0000000108d74db5 _dispatch_client_callout + 8
    6   libdispatch.dylib                   0x0000000108d7e792 _dispatch_workloop_invoke + 3251
    7   libdispatch.dylib                   0x0000000108d86ea3 _dispatch_workloop_worker_thread + 733
    8   libsystem_pthread.dylib             0x000000010915d611 _pthread_wqthread + 421
    9   libsystem_pthread.dylib             0x000000010915d3fd start_wqthread + 13
Run Code Online (Sandbox Code Playgroud)

我使用的唯一字典(afaik)是Bundle.main.infoDictionary?["CFBundleShortVersionString"]显示版本号,但即使没有这行代码,也会记录错误。我还使用内置的 JSON 解析器(带有Codable),但类似的错误将被记录为自定义错误消息(这显然不是)。

此错误是什么意思以及如何修复它?

我知道您可以设置自动断点,将您指向导致错误的或多或少精确的代码行,但是我需要为此添加什么符号/条件?

小智 0

只需从 xcode Product --> clean build 文件夹中清理旧的构建数据

再次build会有新的错误提示