5

RegexKitLite を使用して文字列を一致させるのに問題があります

NSString *encodedPoints=[apiResponse stringByMatching: @"\\\"([^\\\"]*)\\\"^[^:]*" 
                                              capture: 0];

apiResponse は次のとおりです。

@"http://maps.google.com/maps?output=dragdir&saddr=20.001364,73.749283&daddr=19.991499,73.744095"

したがって、この方法で行うと、次のエラーが発生します。

__NSCFString stringByMatching:capture:]: 認識されないセレクターがインスタンス 0x131fc0 に送信されました

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString stringByMatching:capture:]: unrecognized selector sent to instance 0x131fc0' * First throw call stack: (0x3422b8bf 0x3447b1e5 0x3422eacb 0x3422d945 0x34188680 0xb97b 0xad2f 0xaa2d 0xa617 0x34185435 0x375ef9eb 0x376b53cf 0x34185435 0x375ef9eb 0x375ef9a7 0x375ef985 0x375ef6f5 0x375f002d 0x375ee50f 0x375edf01 0x375d44ed 0x375d3d2d 0x30a06df3 0x341ff553 0x341ff4f5 0x341fe343 0x341814dd 0x341813a5 0x30a05fcd 0x37602743 0x4571 0x2838)

グーグルで解決策を見つけようとしていますが、正確な解決策が得られません。

助けてください...

4

1 に答える 1

8

プロジェクトに正しいライブラリが含まれていることを確認してください。

Project Navigator に移動し、プロジェクトを選択します。

ターゲットをクリックして Build Phases タブを選択し、Link Binary With Libraries を開きます。

+ ボタンを押して、libicucore.A.dylib を検索します。このライブラリをプロジェクトに追加します。

次に、コンパイル ソースを追加する必要があります。これは、[ライブラリとバイナリをリンク] のすぐ上の [コンパイル ソース] にあります。もう一度 + ボタンを押して、ターゲットにRegexKitLite.mを追加します。この状態でプロジェクトをビルドしようとすると、RegexKitLite.m ファイルで多くのエラーが発生するはずです。これを修正するには、[ソースのコンパイル] 領域でRegexKitLite.mファイルをダブルクリックし、表示されるポップアップに -fno-objc-arc を含めて、次のコンパイラ フラグをファイルに追加します。完了すると、ライブラリ ソースがプロジェクトに追加されます。

注意として、そのソースファイルのコンパイル中に自動参照カウント-fno-objc-arcを削除します。そのコンパイラフラグなしでファイルが取得するエラーはARCに関係しているため、問題を解決します。

これにより、RegexKitLite を使用する際の問題が解決されました。

于 2012-08-17T23:07:47.477 に答える