0
我做下面的事情在我的示例應用程序:改變實例變量的值聲明爲模型類屬性,通過應用程序委託類
我做了一個模型類,並宣佈數組作爲其財產。
@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並試圖在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]];
任何人都可以建議我 - 爲什麼它不工作,當我試圖直接通過callin更改值在myModel上的g setter方法?
您是如何設置模型控制器的內容的? – 2012-04-20 13:27:18
通過使用綁定的XIB ...內容對象:App委託,ModelKeyPath:myModel – Devarshi 2012-04-22 13:27:12
嘗試記錄'self.myModel'和'[self.myModelController內容]'的值。顯然他們是不同的。你在哪裏設置/更改'myModel'屬性?你能否以非KVO兼容的方式做到這一點?從你的問題來看似乎不太可能,但是你能不小心擁有兩個'MyAppDelegate'實例,一個在NIB中實例化,另一個在代碼中實例化? – 2012-04-22 13:35:30