0
我試圖從我發送的消息中保存屬性到我的核心數據。但每次我保存新消息時,他們都不會追加現有的消息,而只是覆蓋整個實體。我希望你明白我的意思。Swift - 核心數據被覆蓋
我的代碼看起來是這樣的,是我的接收機是從其他VC檢索:
var receivers: [String] = []
@IBAction func doneTapped(sender: AnyObject) {
for receiver in receivers{
var textMessage = PFObject(className:"textMessage")
textMessage["Receiver"] = receiver
textMessage["Message"] = messageOutl.text
textMessage.saveInBackgroundWithBlock {
(success: Bool!, error: NSError!) -> Void in
if (success != nil) {
self.errorOccurred = true
NSLog("Object created with id: \(textMessage.objectId)")
} else {
NSLog("%@", error)
}
}
}
let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let contxt: NSManagedObjectContext = appDel.managedObjectContext!
let en = NSEntityDescription.entityForName("MainTable", inManagedObjectContext: contxt)
var newMessage = SecondModel(entity: en!, insertIntoManagedObjectContext: contxt)
for rec in receivers{
newMessage.receiver = rec
newMessage.date = NSDate()
newMessage.messageType = typeOfMessage
contxt.save(nil)
}
}
如何解決這個爲什麼發生這種情況,將不勝感激任何建議。
編輯:我改變了我「恩」和「NewMessage作爲」到此:
3210,但現在我得到一個「(LLDB)」,在第二行的錯誤。
編輯2:我通過擺脫第二個for-loop並將「save-to-core-data」代碼放在第一個for-loop中解決了這個問題。我仍然不知道爲什麼第一個代碼不應該工作。
爲了澄清,'entityForName'只返回NSEntityDescription,這有點像Core Data對象的模式。它描述了類似於實體描述類型的對象的屬性的類型,但不是被管理對象本身。 –