2012-07-25 64 views
0

在我的MainController中,有一個persons數組,它綁定到一個NSArrayController。這些人的名字顯示在表name列中。如果我將一個按鈕綁定到NSArrayController添加方法,我可以添加按鈕來添加一個新的人員,但是如果在方法中添加新人員,tabel不會顯示新人員,我不知道爲什麼。cocoa:nsarraycontroller添加對象錯誤

enter image description here

我的代碼添加新的人

Person *p =[[Person alloc]init]; 
[self.persons addObject:p]; 

更新: 我知道的答案http://chanson.livejournal.com/85659.html 因爲NSMutableArray的ADDOBJECT不KVC,所以我需要使用

[[self mutableArrayValueForKey:@"persons"] addObject:person]; 
+0

是人員數組,數組控制器還是兩者的名稱?它看起來像是你發佈的內容 – rdelmar 2012-07-25 15:15:07

回答

1

如果行[self.persons addObject:p]中的self.persons引用數組,則你需要添加行self.persons =個人;之後才能更新表格。我從來不確定爲什麼這是必要的,可能與KVO有關。

另一方面,如果self.persons引用數組控制器,那麼它應該按照寫入的方式工作,因爲向數組控制器添加對象將其添加到其排列的對象中,其中表列一定會。這樣做也會更新數組,因爲它綁定到數組控制器。