2012-08-08 116 views
0

嗨,我对核心数据相当陌生,最近开始做一些教程。我已经通过核心数据成功添加了新数据,但我正在努力覆盖数据。我有一个文本框,我希望能够将写入该文本框的文本保存为核心数据。这就是我添加新数据的方式。任何人都能带领我走向正确的方向吗?覆盖核心数据字段

谢谢

P.S.我相信这与我做“insertNewObjectForEntityForName”的方式

-(IBAction)saveData 
{ 

AppDelegate *appDelegate = 
[[UIApplication sharedApplication] delegate]; 

NSManagedObjectContext *context = 
[appDelegate managedObjectContext]; 
NSManagedObject *newContact; 
newContact = [NSEntityDescription 
       insertNewObjectForEntityForName:@"Gameinfo" 
       inManagedObjectContext:context]; 
[newContact setValue:[self valuefromtextfield] forKey:@"score"]; 
//[newContact setValue:@"mark" forKey:@"currentLevel"]; 
NSError *error; 
[context save:&error]; 

} 

回答

4

当您使用insertNewObjectForEntityForName要创建一个新实体做。如果你想编辑你需要一个现有实体

AppDelegate *app = [[UIApplication sharedApplication] delegate] 
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Gameinfo"]; 
NSError *error = nil; 
NSArray *someArray = [app.managedObjectContext executeFetchRequest:request error:&error]; 

然后someArray拥有所有命名它Gameinfo实体。找到你想要的并编辑你想要的任何属性。然后在托管对象上下文上调用save

+0

叶..我误解了这个问题。这个解决方案应该可行 – NSPunk 2012-08-08 19:44:56

+0

非常感谢!将接受 – 2012-08-08 20:08:17

+0

对不起,它不承认你说的“self.app”的部分。很显然,我用适当的名称替换了“app”,但没有运气。有什么建议么?再次感谢 – 2012-08-08 20:18:03