2012-01-16 56 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