-1

MyMutableStrというインスタンスがありNSMutableString、インデックス 7 でその文字にアクセスしたい。

例えば:

unsigned char cMy = [(NSString*) MyMutableStr characterAtIndex:7];

これは醜い方法だと思います。コードが多すぎます。

私の質問は: Objective-C で文字にアクセスするためのより簡単な方法はありますNSMutableStringか?

同様に、C 言語では [ ] 演算子を使用して文字列の文字にアクセスできます。

unsigned char cMy = MyMutableStr[7];
4

2 に答える 2

0

その方法は を使用することですが、は のサブクラスであるため、ポインターcharacterAtIndex:にキャストする必要はありません。それほど長くはありませんが、それでも快適に感じられない場合は、括弧演算子を使用して反復できる C 文字列を取得するために を使用することをお勧めします。NSStringNSMutableStringNSStringUTF8String

const char* cString= [MyMutableStr UTF8String];
char first= cString[0];

ただし、これを覚えておいてください(NSString クラス参照から取得):

返された C 文字列は、返されたオブジェクトが解放されるのと同じように自動的に解放されます。C 文字列が作成された autorelease コンテキストの外部に格納する必要がある場合は、C 文字列をコピーする必要があります。

于 2013-08-25T19:01:02.963 に答える
0

他の人が言ったように characterAtIndex: しかし、慎重に検討したいことがいくつかあります。

まず、変更可能な文字列を扱っています。あなたはそれがあなたの下から変化しないように注意したい. 1 つの方法は、不変のコピーを作成し、それを op に使用することです。

次に、Unicode を扱っているため、文字列を正規化して構成済みのフォームを取得することを検討する必要がある場合があります。これは、一部の視覚的表現が複数の実際の unichar である可能性があるためです。多くの場合、それは人々にとってつまずきのブロックです。

于 2013-08-26T00:00:04.197 に答える