我有一个绑定(bind)到 nstableview 的数组 Controller 。我还有一些 nstextfields,用户填充这些字段然后按“添加”按钮。我想获取这些字段,名字和姓氏,并使用它们来填充实体。我将把该实体称为 PersonEntity。
因此,在添加按钮的委托(delegate)中,我获取了 2 个文本字段的字符串值,填充一个实体,然后将其添加到数组 Controller 。我是 cocoa /objective-c 的新手。这似乎是一件简单的事情,但似乎我无法像我期望的那样创建一个实体
PersonEntity* person
[person setFirst_name:firstName];
[person setLast_name:lastName];
[customerArray addObject:person];
它崩溃了,说我无法在 [customerArray addObject:customer] 行添加 nil。该行是我尝试将实体添加到绑定(bind)到 TableView 的数组 Controller 。做这样的事情的正确方法是什么?
最佳答案
我不确定 PersonEntity 是否是核心数据实体,但由于您的问题也被标记为核心数据,所以我假设它是。
如果您的 ArrayController(绑定(bind)到 NSTableView 的那个)绑定(bind)到 CoreData 源,则不要直接向其添加对象。相反,您将其添加到您的 ManagedObjectContext 中,它将反射(reflect)在您的 NSTableView 上。
代码应如下所示:
PersonEntity *person = [NSEntityDescription insertNewObjectForEntityForName:@"PersonEntity"
inManagedObjectContext: managedObjectContext];
[person setFirst_name:firstName];
[person setLast_name:lastName];
/* Save Event */
NSError * error = nil;
[__managedObjectContext save: &error];
希望这有帮助! 鬃毛
关于macos - 以编程方式创建实体并将其添加到数组 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8936147/