2015-05-21 58 views
0

我在我的coredata模型中有一對多的關係。對於每個新聞對象,我都有許多細節對象。無法從CoreData中刪除NSOrderedSet

class Job: NSManagedObject { 

@NSManaged var name: String 
@NSManaged var count: NSNumber 
@NSManaged var id: String 
@NSManaged var startDate: NSDate 
@NSManaged var finishDate: NSDate 
@NSManaged var expected: NSDate 
@NSManaged var isFinished: NSNumber 
@NSManaged var sender: String 
@NSManaged var receiver: String 
@NSManaged var details: NSOrderedSet 

} 

class JobDetail: NSManagedObject { 

@NSManaged var message: String 
@NSManaged var date: NSDate 
@NSManaged var location: String 
@NSManaged var status: NSNumber 
@NSManaged var parent: Job 

} 

那麼,我該如何刪除Job中的所有細節?我目前的做法是刪除Job本身並重新創建,這是較慢的。

我試圖刪除與,

context?.deletedObjects(myJob.detail) 

,但沒有奏效。它說

'(@lvalue NSOrderedSet) - > _' 不等同於 '設置'

+0

什麼沒有工作?你有什麼錯誤嗎?你有沒有檢查'context'不是'nil'? – ABakerSmith

+0

是否要從數據庫中刪除'details'中的所有對象,或者只是中斷關係? –

+0

我想從細節中刪除所有對象。由於我從網絡獲得新的細節,我想從數據庫中完全刪除舊的,並附上新的細節。 – Meanteacher

回答

0

看來你混了deleteObject()deletedObjects()

deletedObjects()是讓這 已經標記爲刪除在管理對象範圍內的所有被管理對象的列表的方法。你必須調用的是每個對象的deleteObject() 。類似(不是編譯器檢查):

for detail in myJob.details { 
    context.deleteObject(detail) 
} 
+0

'''context.deleteObject(細節爲!JobDetail)'''工作。我希望可以有一個刪除功能來刪除它。好吧。謝謝。 – Meanteacher