0

私は紛らわしい問題を抱えています。私は 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 を宣言せずにそれを行います。

私の質問は、なぜ私の場合、それを機能させるためにインターフェイスで宣言する必要があるのですか?

4

0 に答える 0