0

RestKit(master)ベースのアプリがOSX10.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上のXcode4.4で、ベースSDKは10.8に設定され、ターゲットは10.6にデプロイされます。NSRegularExpression(10.7以降でのみ使用可能)を参照しているRestkitを調べたところ、すべて次のようなバージョンチェックでラップされています。

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

これでバージョンの問題を処理できると思いますか?しかし、その結果、私のアプリは10.7以降でのみ実行され、10.6では実行されません。

Xcode 4.3.3をダウンロードし、10.6sdkを現在のXcodeにコピーしました。ベースSDKのリリースターゲットを10.6に設定しようとしましたが、どちらも役に立ちません。

誰かがこれに光を当てることができますか?ありがとう..

4

2 に答える 2

0

まあ、私はこれに対する解決策を本当に得ませんでした。__MAC_OS_X_VERSION_MAX_ALLOWED はベース SDK のみをチェックするため、私の場合、デプロイ ターゲットが 10.6 に設定されていても、常に NSRegularExpression を使用します。

NSRegularExpression 呼び出しを常にスキップするように、if ステートメントにいくつかの変更を加えました。

あなたはそれを回避するためにこのようなことをすることができます:

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

NSRegularExpression はOS X v10.7 以降で利用可能です

于 2012-08-24T07:09:59.237 に答える