dyld:找不到符号:_OBJC_CLASS _ $ _ NSNetService错误

时间:2014-06-10 14:00:26

标签: ios xcode frameworks nsnetservice

所以我有以下问题:

在我的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,其中包含自iOS 2.0以来可用的NSNetService类。

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

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

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

我打印的NSNetService是零。

是否可以在不崩溃的情况下启动应用程序,而无需将框架设置为Optional

感谢iComputerfreak

1 个答案:

答案 0 :(得分:4)

尝试重新添加Foundation.framework:

  1. 转到项目的目标
  2. 选择“常规”标签
  3. 在“Linked Frameworks a Libraries”下查找Foundation.framework,选择它并按下buttom上的减号(' - ')以删除此框架。
  4. 现在按下加号('+')并搜索Foundation.framework - 重新添加它,它应该可以修复你的崩溃。
  5. 希望它有效 - 它确实适合我。