次のコードがあります。
@interface AXWindowController : NSWindowController {
IBOutlet NSTextField *text;
IBOutlet NSTextField *otherText;
}
- (void) setText: (NSString *)input;
- (void) setOtherText;
@end
@implementation AXWindowController
- (void) setText: (NSString *)input
{
[text setStringValue:input];
}
- (void) setOtherText
{
[otherText setStringValue:@"nag"];
}
@end
そして、私が実行すると:
1. [controller showWindow:nil];
2. [controller setText:@"lol"];
3. [controller setOtherText];
3 行目は正しく実行されますが、2 行目は何もしません。実際、2 行目と 3 行目の実行中に gdb で text と otherText を見ると、次の結果が得られます。
(gdb) p text
$1 = (NSTextField *) 0x0
(gdb) p otherText
$2 = (NSTextField *) 0x1385d1e0
何が起こっている?入力変数を NSTextField の set 関数に渡すことができませんか? set 関数のパラメータを変更すると NSTextField が null になるのはなぜですか?