2

コード設計の観点から、コンテンツが頻繁に変更されることを意図しているときに、の内部実装が をUITextView使用するNSStringのに を使用しないのはなぜですか?NSMutableString

4

3 に答える 3

0

もちろん、それが指すものを変更できない理由はありません! メンバーは単なるポインターであるため、NSMutableString必要に応じて文字列を自分自身に置き換えることができます。

ビューに大量のテキストを追加する場合は、これがより効率的な方法です。

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [myTextView setText:[[NSMutableString alloc] init]];
    }
    return self;
}

@Guffaが彼の答えで説明したように、そうしないと、ビューはそれ自体を再描画することを認識しないため、setTextを必ず呼び出してください。

- (void)appendText:(NSString*)text 
{
    NSMutableString *dispText = (NSMutableString*)[myTextView text];
    [dispText appendString:text];

    [myTextView setText:dispText]; // notify myTextView of text change!    
}
于 2013-04-21T01:23:58.937 に答える