現在、私はiPhone 3.0 SDKを使用してObjective-Cで現在100%書かれているソフトウェアを開発中です。Objective-C文字列操作
Objective-Cの文字列連結:
は、私はかなりまたは文字列連結、より具体的には、NSStringの連結及びこれまでのところ、私はこのようにそれをやっているを実行する必要があり、クロス道路になってきました。
NSString *resultantString = (NSMutableString*)[@"Hello " stringByAppendingString: @"World"];
今、あなたが想像できるよう、これは私が一緒に6 NSStringsを連結しようとすると、読み取ることが非常に困難なります。
最初に私は私の文字列の連結を行い、として、私は次のようにC++の簡単な文字列の連結を使用することができます戻って私のObjective-Cのクラスにそれを渡すのObjective-C++クラスで混合意図:
C++文字列連結:
string cppString = "Hello" + "World" + "see" + "easy!";
私はC char配列を使用することができますが、それはもう少し読みにくいだろう。
それから、私はCocoaでPythonまたはRubyブリッジを使うことができました。これは、C言語よりも正規表現と優れた文字列処理の追加ボーナスを提供します。
これは、RubyとPythonを少量しかコーディングしていないにもかかわらず、文字列操作言語として請求されているため、これは私には意味がありました。 Perl私はXcodeで直接サポートされていないので、スキップすることにしました。
私もパフォーマンスに興味がありますので、私は文字列連結を行うための最速の方法を探しています。
どうすればよいですか?一度に多くの文字列を連結するためにObjective-Cに欠けているいくつかの簡単な方法がありますか? PythonやRubyクラスのメソッドを使用して、連結された文字列や正規表現の変更された文字列を返すという考えは信じられないほど狂ったものではないでしょうか?おそらく私はこれを行うには別の方法が欠けていた?
更新: はい。私はスピードに関心があると指摘して以来、私は文字列の操作を行うために別の言語ランタイムを引き出すことを考えるのはむしろ夢中でした。ブリッジを追加すると、NSString/NSMutableStringを単に使うよりもずっと遅くなるでしょう。
私は文字列連結を行うために、動的言語ランタイム全体を使用するように感じていますが、それは過剰反応のようなものでしょうか? しかし、私はあなたが他の用途を見つけることができると確信しています.. – fortran
iPhoneでC++を使うことができますが、PythonとRubyは '解釈されない言語'のルールのため制限されていません – cobbal
@fortran - :)あなたはそれを私が2AMのアイデアがそれほど大きくないと思うようにしています。私は明日目を覚ますだろう、この質問を読んで、おそらくこれを最初に考えても自分自身を叩く。 –