0

我遇到了这个问题,我的基于 RestKit(master) 的应用程序无法在 OSX 10.6 上运行。我不断收到以下错误:

Dyld Error Message:
Symbol not found: _OBJC_CLASS_$_NSRegularExpression
Referenced from: something/something/../Frameworks/RestKit.framework/Versions/A/RestKit
Expected in: /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
in /Users/something/something    Client.app/Contents/MacOS/../Frameworks/RestKit.framework/Versions/A/RestKit

我的开发环境是 10.8 上的 Xcode 4.4,基础 SDK 设置为 10.8,并将目标部署到 10.6。我查看了引用 NSRegularExpression 的 Restkit(仅在 10.7 或更高版本上可用),它都包含有版本检查,例如:

#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 || __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
#endif

我认为这应该处理版本问题?但结果是我的应用程序只能在 10.7 或更高版本上运行,而不能在 10.6 上运行。

我下载了 Xcode 4.3.3 并将 10.6 sdk 复制到我当前的 Xcode。我尝试将基础 SDK 的发布目标设置为 10.6,但它也无济于事。

有人可以对此有所了解吗?谢谢..

4

2 回答 2

0

NSRegularExpression在 OS X v10.7 及更高版本中可用

于 2012-08-24T07:09:59.237 回答
0

好吧,我并没有真正得到解决方案。__MAC_OS_X_VERSION_MAX_ALLOWED 仅检查您的基础 SDK,因此在我的情况下,尽管我的部署目标设置为 10.6,但它始终使用 NSRegularExpression。

我最终对 if 语句进行了一些更改,以便它始终跳过 NSRegularExpression 调用。

你可以做这样的事情来解决它:

#if __MAC_OS_X_VERSION_MAX_ALLOWED < -1 || __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
#endif
于 2012-09-07T01:09:56.970 回答