2012-01-20 75 views
0

我有一個綁定到nstableview的數組控制器。我也有一些nstextfields用戶填充,然後按下「添加」按鈕。我想要這些字段,first_name和last_name,並使用它們來填充實體。我會打電話給實體PersonEntity。以編程方式創建實體並將其添加到數組控制器

因此,在添加按鈕的代理中,我獲取了2個文本字段的字符串值,填充一個實體,然後將其添加到數組控制器。我是新來的可可/ objective-c。這似乎是一個簡單的事情,但它看起來像我希望

PersonEntity* person 
[person setFirst_name:firstName]; 
[person setLast_name:lastName]; 
[customerArray addObject:person]; 

它崩潰說我不能在[customerArray ADDOBJECT:客戶]加零,我不能創建一個實體線。該行是我嘗試將實體添加到綁定到tableview的數組控制器。什麼是這樣做的正確方法?

+0

你可以發佈多一點的上下文代碼?客戶是什麼類型的對象?人曾經分配過嗎? – sbooth

+0

sbooth,我修正了那裏的代碼不應該是一個客戶。人沒有分配,如果我對某人做了alloc/init,它會崩潰。 – JonF

+0

如果沒有分配人員,那很可能是問題所在。如果'PersonEntity * person = [[PersonEntity alloc] init]'崩潰,那麼還有另一個問題的根源。什麼是PersonEntity的超類? – sbooth

回答

3

我不確定PersonEntity是否是核心數據實體,但由於您的問題也被標記爲核心數據,我會假定它是。

如果您的ArrayController(綁定到您的NSTableView的)綁定到CoreData源,則不會直接向其添加對象。而是將其添加到managedObjectContext中,它將反映在您的NSTableView上。

的代碼應該是這樣的:

PersonEntity *person = [NSEntityDescription insertNewObjectForEntityForName:@"PersonEntity" 
             inManagedObjectContext: managedObjectContext]; 

[person setFirst_name:firstName]; 
[person setLast_name:lastName]; 

/* Save Event */ 
NSError * error = nil; 
[__managedObjectContext save: &error]; 

希望這有助於! Mane

+0

完美,謝謝 – JonF

相關問題