2012-01-20 45 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

相关问题