【问题标题】:dyld: Symbol not found: _OBJC_CLASS_$_NSNetService Errordyld:找不到符号:_OBJC_CLASS_$_NSNetService 错误
【发布时间】:2014-06-10 14:00:26
【问题描述】:

所以我有以下问题:

在我的 iPhone 5s 上的 iOS 8 上启动我的应用程序时,我没有收到任何错误,但在我的 iPhone 3GS 上的 iOS 6.1.3 上启动我的应用程序时,我收到此错误:

dyld: Symbol not found: _OBJC_CLASS_$_NSNetService
Referenced from: /var/mobile/Applications/567E221A-FC5C-4011-90AD-E47E5FF033B1/BellyClient.app/BellyClient
Expected in: /System/Library/Frameworks/CFNetwork.framework/CFNetwork
in /var/mobile/Applications/567E221A-FC5C-4011-90AD-E47E5FF033B1/BellyClient.app/BellyClient

我导入了一个名为 Server 的类。该类使用 CFNetwork.framework,其中包含 NSNetService 类,该类自 iOS 2.0 起可用。

使用 NSClassFromString(@"NSNetService") 并不是我真正喜欢的解决方案。 我也不知道为什么会出现这个错误,因为类 NSNetService 应该在 iOS 6 中可用。它可能是设备吗?

我搜索并发现,将框架设置为可选,将解决此问题。但问题是,当我在 iOS 6 上运行应用程序时,我无法使用该框架。当我这样做时

if ([NSNetService class] == nil) {
    NSLog(@"NSNetService is nil");
}

我得到打印 NSNetService 是 nil。

是否可以在不崩溃且不将框架设置为可选的情况下启动应用程序

感谢 iComputerfreak

【问题讨论】:

    标签: ios xcode frameworks nsnetservice


    【解决方案1】:

    尝试重新添加 Foundation.framework:

    1. 转到项目的目标
    2. 选择“常规”标签
    3. 在“Linked Frameworks an Libraries”下查找 Foundation.framework,选择它并按底部的减号 ('-') 删除此框架。
    4. 现在按加号 ('+') 并搜索 Foundation.framework - 重新添加它,它应该可以解决您的崩溃问题。

    希望它有效 - 它对我有用。

    【讨论】:

    • 非常感谢。我的问题是,我根本没有链接 Foundation.framework。这适用于 iOS 8,但不适用于 iOS 6。
    • 对我来说,在重新添加框架后也帮助清理项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多