2

SQL ステートメントで使用されている文字列を作成しています。その中で同じ文字列を数回再利用する必要があります。この文字列は、テキスト ボックスからのテキストです。

現在のコード:

NSString *searchStr = [NSString stringWithFormat:@"(Name LIKE \'%%%@%%\' OR Contact LIKE \'%%%@%%\')", [self.txtfSearch text], [self.txtfSearch text]];

すべての % は含む検索用です。現在、私が制御できない Web サービスに接続しているため、この方法についてコメントしないでください。きっと皆さんも共感していただけると思います。

私がする必要があるのは、最後の [self.txtfSearch text] 部分を再利用することです。文字列とプレースホルダーに関するApple dev docsを調べました。プレースホルダーに {0} を使用する C# メソッドも試しましたが、うまくいきません。

上記のようにしても2列で見れば大したことはありませんが、6列以上になると文字列の構築がおかしくなることがよくあります。

私はこのようなものが欲しい:

NSString *searchStr = [NSString stringWithFormat:@"(Name LIKE \'%%{0}%%\' OR Contact LIKE \'%%{0}%%\')", [self.txtfSearch text]];

obj-c でこれを行う方法はありますか?

4

1 に答える 1

1

次のようなことができますか?

NSString *placeholderStr = @"_";
NSString *searchStr = [@"(Name LIKE '%%_%%' OR Contact LIKE '%%_%%'" stringByReplacingOccurrencesOfString: placeholderStr withString: [self.txtfSearch text]];

これにより、すべてのアンダースコア (_) が にあるテキストに置き換えられtxtfSearchます。

于 2013-07-29T21:16:44.890 に答える