サンプルアプリケーションで次のことを行っています。
モデル クラスを作成し、その中で配列をプロパティとして宣言しました。
@interface MyModel : NSObject
@property (strong, readwrite) NSArray *charactersToDisplay;
@end
私のアプリ デリゲート クラスでは、MyModel をプロパティとして宣言しました。
@interface MyAppDelegate : NSObject <NSApplicationDelegate>
@property (strong, readwrite) MyModel *myModel;
@property (weak) IBOutlet NSObjectController *myModelController;
- (IBAction)test:(id)sender;
@end
MainMenu.xib では、オブジェクト コントローラー オブジェクトをドラッグ アンド ドロップし、MyAppDelegate の myModel へのバインディングを実行しました。
私は次のことを達成しようとしています:
MyAppDelegateChange でボタンにバインドされるアクション test: を定義し、charactersToDisplay の値を変更しようとしています。
問題は次のとおりです。
このコードを使用している場合、機能しません:
[self.myModel setCharactersToDisplay:[[NSArray alloc] initWithObjects:@"1",@"2", @"3", "@4", @"5", nil]];
しかし、以下のコードを使用してオブジェクトコントローラーを介してその値を変更しようとしている場合、それは機能しています:
[[self.myModelController content] setCharactersToDisplay:[[NSArray alloc] initWithObjects:@"1",@"2", @"3", "@4", @"5", nil]];
誰でも私に提案できますか? myModel でセッターメソッドを呼び出して値を直接変更しようとすると、なぜ機能しないのですか?