5
我正在開發一個在ios中使用核心數據的應用程序。而且有很多的實體和大量的數據將被保存,這就是爲什麼我使用「私有上下文」方法和塊使用後端線程保存數據。除了一個實體外,所有實體都可以。第一次在實體中沒有保存數據的核心數據
在此實體中,數據不會在應用程序啓動並同步數據時第一次保存,但在此之後,如果再次同步數據,則會保存該實體中的所有數據。這裏是我的保存數據代碼:
let programAttendeeAssignArray:NSArray? = dict["data_assign"] as AnyObject? as? NSArray
for var paAssignIndex = 0; paAssignIndex < programAttendeeAssignArray?.count; paAssignIndex++ {
let programAttendeeAssignObj:NSDictionary? = programAttendeeAssignArray?.objectAtIndex(paAssignIndex) as AnyObject? as? NSDictionary
if let paAssignDict = programAttendeeAssignObj as? [String: AnyObject] {
var keyString: String = ""
if let eID = paAssignDict["id"]! as? Int {
keyString = String(eID)
}
let paAssign: Conf_speakers = Utilities.sharedInstance.getOrCreateObjectOfEntityName("Conf_speakers", key: "id", identifier: keyString, localContext: privateContext) as! Conf_speakers
if let eeid = paAssignDict["id"]! as? Int {
paAssign.id = String(eeid)
}
if let attendee_id = paAssignDict["id1"]! as? Int {
paAssign.attendee_id = String(attendee_id)
}
if let agenda_id = paAssignDict["id2"]! as? Int {
paAssign.agenda_id = String(agenda_id)
}
if let updated_at = paAssignDict["id3"]! as? String {
paAssign.updated_at = updated_at
}
}
}
let error: NSErrorPointer = nil
do {
try privateContext.save()
} catch let error1 as NSError {
error.memory = error1
} catch {
fatalError()
}
dispatch_async(dispatch_get_main_queue(), {
appDelegate.managedObjectContext.performBlock {() -> Void in
//var fds:Bool
do {
try
print("Result MSG: \(appDelegate.managedObjectContext.save())")
// fds = true
} catch _ {
//fds = false
}
}
})
你有沒有試過線爲這個特定的實體? – Poles
是的沒有線程它正在保存數據。 –
請與線程代碼分享。 – Poles