2012-01-16 59 views
1

我是Cocoa和xCode的新手,但不是编程。设置并从Xcode代码中获取核心数据/ cocoa

我在界面生成器中创建了一些核心数据和界面。

现在我需要编辑并从我的代码中获取一些核心数据。事实上,我需要能够获得“图像路径”来显示图片并在“图像路径”中设置新值。 “imapepath”是核心数据属性。

我想通了如何插入一个新条目,但我想编辑值而不是

NSManagedObjectContext *context = [self managedObjectContext]; 
    NSManagedObject *places = [NSEntityDescription 
            insertNewObjectForEntityForName:@"Place" 
            inManagedObjectContext:context]; 
    [places setValue:[tvarNSOpenPanelObj filename] forKey:@"imagepath"]; 

我希望你们有一些线索;-)

回答

0

如果从CoreData加载你的NSManagedObject,那么你可以编辑它的价值就像任何其他对象。这存储在你的NSManagedObjectContext(即只是在内存中)。

然后你需要在某些时候将它保存到你的后台存储中,所以你需要在你的NSManagedObjectContext上调用save:并且保存。

你应该阅读的编程指南核心数据: http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/coredata/cdProgrammingGuide.html#//apple_ref/doc/uid/TP30001200-SW1

(如果你不知道如何加载从核心数据对象,阅读“抓取Managed Objects的部分,然后“使用管理对象“知道如何编辑它们)......实际上,从头到尾都要阅读它。它对于了解如何正确有效地使用CoreData非常宝贵。

+0

谢谢,有很多阅读工作要做,但我想这是正确的事情;-) – 2012-01-16 14:43:04

+0

好吧,我读了它,有一些理解困难,也许我的英语需要刷新:-(无论如何,我我仍然无法开始它 - 也许你可以给我一点线索/提示?与Delphi和数据库/ SQL编程相比,这是非常不同的: -/ – 2012-01-18 18:12:15

+0

好吧,最简单的例子....如果你想从核心数据'获取'一个对象,你创建一个NSFetchRequest - 你在它上面设置一个实体(在你的例子中放置)和一个谓词(一个where子句) - 然后你在被管理对象上调用executeFetchRequest:上下文 - 然后它会返回你正在寻找的对象,然后你可以编辑它的属性,这会改变它们在托管对象上下文(在内存中) - 然后在托管对象上下文中调用save:并将它写入磁盘。 – bandejapaisa 2012-01-18 19:33:21