nw_dictionary_copy 使用 null 字典调用

nw_dictionary_copy called with null dictionary

提问人:Neph 提问时间:7/10/2019 更新时间:5/15/2022 访问量:2596

问:

Swift 5、Xcode 10

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

单击“登录”按钮后,我的应用程序连接到FTP服务器,但是如果没有Internet连接,则会显示一个包含两个选项的对话框: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

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

此错误是什么意思,如何解决?

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

iOS Swift 字典 null

评论

0赞 Ryan Buening 9/4/2019
我的 Xamarin Forms 应用程序中也有这个问题。你找到答案了吗@Neph?
0赞 Neph 9/6/2019
@RyanBuening我想我最终忽略了它,因为它似乎并没有真正影响任何事情。抱歉,我无法检查它目前是否仍然存在,我不能说我什么时候有机会检查Mac。您的应用正在执行哪些操作,可能会导致这种情况?
0赞 Ryan Buening 9/7/2019
嘿,谢谢你的回复。我不确定该应用程序正在做什么导致这种情况。这很奇怪。就像你说的,它似乎没有影响任何事情。我想我会密切关注它。谢谢。
0赞 Neph 9/9/2019
当它发生时,你用这个应用程序做什么?它是否使用任何额外的库?
3赞 Neph 12/3/2019
@RyanBuening几周前我开始开发一个新应用程序,但从未遇到过这些错误。今天,我添加了 Reachability 类(我也在我的其他应用程序中使用它),当我拔下 Mac Mini 的 LAN 电缆时(当应用程序在模拟器中运行时),错误再次弹出。我所做的就是:第一行:,第二行:。删除第二行也可以消除错误。你也在使用这个类吗?let reachability = Reachability()!if reachability.connection != .none {....} else {...}

答:

0赞 HOPCHAIN 5/15/2022 #1

只需清理旧的构建数据 从 Xcode 产品 --> clean build 文件夹

并重新构建 将有新的错误提示