2016-06-28 75 views
0

我創建的NSManagedObject數組作爲我UITableViewDataSource如下:問題達成諒解,核心數據的基本面

let entity = NSEntityDescription.entityForName("YoutubeAsset", inManagedObjectContext: self.managedContext)! 
let asset = YoutubeAsset(entity: entity, insertIntoManagedObjectContext: self.managedContext) 
asset.videoId = code 
myDataSource.append(asset) 

而且比,當用戶選擇其中的一個單元,我要保存特定的對象到我的核心數據實體中。

的問題是,當我打電話

do { 
     try managedContext.save() 
     } catch let error as NSError { 
      print("Could not save \(error), \(error.userInfo)") 
     } 

這節省所有DataSource到核心數據。

我該如何「拉」我的managedContext中的選定對象,並將其保存到核心數據中?非常感謝,Roi!

+0

你想完成什麼? DataSource中的未保存更改(除新資產外)您不想保存嗎? –

回答

1

如果managedContext在代碼示例的開頭沒有未保存的對象,那麼在末尾保存上下文將導致一個SQL插入。

您不能保存單個實體,只保存上下文(保存上下文中未保存的所有實體)。

如果您想進行一些更改並使其未保存,那麼您應該在不同的上下文中進行這些更改。

+0

而是在這裏評論它自己的問題 - 是的,在同一個上下文中有一堆實體,並且我試圖保存一個特定的實體。爲每個「單個新」對象創建新的上下文是否是常規操作?或者我應該打破我的主要上下文,其中包含所有的「對象」,而不是應用保存操作? –

+0

正常:在一個上下文中進行更改並保存,除非您有充分的理由不這樣做。您可以在創建每個對象後調用save並保持使用相同的上下文。 –

+0

是否有可能,如果你可以附上一些示例代碼,在我的上下文已經擁有一堆對象的情況下,但我想只保存第一個例如? –