2012-01-22 1 views
1

У меня есть текстовое поле, связанное с nsmutableablestring. В элементе действия для кнопки я хочу очистить эту строку, но она бросает исключение, говоря, что оно неизменное.Очистка NSTextfield, связанного с nsmutablestring

переменная

Пользователь

NSMutableString* firstName; 

Свойство для связывания с текстовым полем объявлена ​​в .h

@property (copy) NSMutableString* firstName; 

В действии для кнопки следующая строка Выдает исключение

[firstName setString:@""]; 

У меня нет никаких проблем с чтением значения в firstName для доступа к тому, что находится в текстовом поле s o привязка, похоже, работает.

Вот трассировки стека

Attempt to mutate immutable object with setString: 
2012-01-22 14:48:58.084 testproj[2509:707] (
    0 CoreFoundation      0x00007fff88233286 __exceptionPreprocess + 198 
    1 libobjc.A.dylib      0x00007fff857bdd5e objc_exception_throw + 43 
    2 CoreFoundation      0x00007fff882330ba +[NSException raise:format:arguments:] + 106 
    3 CoreFoundation      0x00007fff88233044 +[NSException raise:format:] + 116 
    4 CoreFoundation      0x00007fff882892dd mutateError + 93 
    5 testproj       0x00000001000035c4 -[AppController AddCustomer:] + 388 
    6 CoreFoundation      0x00007fff88222a1d -[NSObject performSelector:withObject:] + 61 
    7 AppKit        0x00007fff8f319710 -[NSApplication sendAction:to:from:] + 139 
    8 AppKit        0x00007fff8f319642 -[NSControl sendAction:to:] + 88 
    9 AppKit        0x00007fff8f31956d -[NSCell _sendActionFrom:] + 137 
    10 AppKit        0x00007fff8f318a30 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2014 
    11 AppKit        0x00007fff8f3988e0 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 489 
    12 AppKit        0x00007fff8f31763a -[NSControl mouseDown:] + 786 
    13 AppKit        0x00007fff8f2e20e0 -[NSWindow sendEvent:] + 6306 
    14 AppKit        0x00007fff8f27a68f -[NSApplication sendEvent:] + 5593 
    15 AppKit        0x00007fff8f210682 -[NSApplication run] + 555 
    16 AppKit        0x00007fff8f48f80c NSApplicationMain + 867 
+0

Вы назначили и инициализировали его – markhunte

+0

Я не могу заставить это не работать :-). Хотя я использовал ленивое инициирование для первого имени, поэтому все мои вызовы self.firstName – markhunte

ответ

Смежные вопросы