gpt4 book ai didi

objective-c - 清除绑定(bind)到 nsmutablestring 的 NSTextfield

转载 作者:行者123 更新时间:2023-12-03 17:05:49 25 4
gpt4 key购买 nike

我有一个绑定(bind)到 nsmutablestring 的文本字段。在按钮的操作项中,我想清除该字符串,但它抛出异常,表示它是不可变的。

成员变量是

NSMutableString* firstName;

绑定(bind)到文本字段的属性在 .h 中声明

@property (copy) NSMutableString* firstName;

在按钮的操作中,以下行抛出异常

[firstName setString:@""];

我在读取firstName中的值来访问文本字段中的内容时没有遇到任何问题,因此绑定(bind)似乎正在工作。

这是堆栈跟踪

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

最佳答案

您是否依赖合成 setter ? copy 返回一个不可变的副本,因此您需要定义自己的 setter。请参阅http://vgable.com/blog/2009/03/17/mutable-property-and-copy-gotcha/了解更多详情

关于objective-c - 清除绑定(bind)到 nsmutablestring 的 NSTextfield,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8964644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com