我已经为使用核心数据的osx创建了简单的应用程序(它不是基于文档的应用程序)
我创建了一个名为myTable的实体,我在其中有3个属性(myString1,myString2和myString3),这些属性都是字符串。
我在.xib文件中创建了3个文本字段和一个保存按钮。在AppDelegate.h中,我为文本字段创建了3个IBOutlet,为保存按钮创建了1个IBAction。
在AppDelegate.m中,到目前为止我有以下代码: (为简单起见,此处省略了默认代码。)
- (IBAction)saveButtonHasBeenClicked:(id)sender {
//fill the array
NSArray * myArray = [[NSArray alloc]initWithObjects:[_firstTextField stringValue],[_secondTextField stringValue], [_thirdTextField stringValue], nil];
// how to save this array in coredata?
}
如果我运行以下代码:
for (NSString *detail in myArray) {
NSLog(@"Detail is: %@",detail);
}
我可以验证数组是否已填充文本字段的值。但是,我不确定是否应该将值保存在数组中,然后将它们插入到coredata中,或者我应该单独插入每个文本字段值。
我知道我应该做一些关键:值:编码在这里,但我不知道从哪里开始。任何人都可以帮我这个代码,或发布一些教程的链接?我知道如何使用NSTableView和绑定来保存数据,但我无法通过文本字段和编码找到自己的方式。
答案 0 :(得分:0)
以防万一其他人需要解决方案,这里是:
NSManagedObject *myObject = [NSEntityDescription insertNewObjectForEntityForName:@"myTable" inManagedObjectContext:[self managedObjectContext]];
[myObject setValue:[__firstTextField stringValue] forKey:@"myString1"];
[myObject setValue:[_secondTextField stringValue] forKey:@"myString2"];
[myObject setValue:[_thirdTextField stringValue] forKey:@"myString3"];
//[self saveAction:myObject];
// above solution works also, but the solution bellow is better
NSError *myError = nil;
if (![[self managedObjectContext]save:&myError]) {
NSLog(@"Error while attempting to save the data");
}
毕竟我根本不需要阵列,所以我删除了那部分。
干杯