私は紛らわしい問題を抱えています。私は Objective-C については足首までしか知らないので、説明するために最善を尽くします。nibファイルにあるNSTextFieldを単に宣言するコントローラーであるクラスがあります。
インターフェイス ファイルでの宣言は次のとおりです。
@property (nonatomic, retain) IBOutlet NSTextField *textField;
そして実装では:
@synthesize textField;
シンプルですよね?しかし[textField stringValue]
、送信ボタンをクリックして後でそれを呼び出すと、不明なセレクターメッセージで失敗します (そのオブジェクトタイプでそのメッセージを呼び出すことができないと考えられる場合に典型的です)。これは次のようになりました。
-(IBAction)send:(id)sender {
NSString* txt = [textField stringValue];
[server send:txt];
}
これを修正するために、次のことを行いました。
@interface MyController : NSObject {
NSTextField *textField;
}
これを示すチュートリアル/例は見たことがありません。インターフェイスのこのセクションで NSTextField を宣言せずにそれを行います。
私の質問は、なぜ私の場合、それを機能させるためにインターフェイスで宣言する必要があるのですか?