gpt4 book ai didi

ios - Core Data 第一次没有在实体中保存数据

转载 作者:搜寻专家 更新时间:2023-10-31 08:08:00 25 4
gpt4 key购买 nike

我正在开发一个使用 ios 核心数据的应用程序。并且有很多实体和大量数据要保存,所以这就是为什么我使用“私有(private)上下文”方法和使用 block 将数据保存在后台线程中。所有实体都很好,除了一个。

在这个实体中,当应用程序启动并同步数据时,数据不会在第一次保存,但之后,如果我再次同步数据,该实体中的所有数据都会被保存。这是我保存数据的代码:

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
}
}
})

最佳答案

 let appDel : AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context : NSManagedObjectContext = appDel.managedObjectContext

let request = NSFetchRequest(entityName: "TableName")
request.returnsObjectsAsFaults = false
do {
var results :NSArray

try results = context.executeFetchRequest(request)
if results.count == 0
{

}
else{

let managedObject = results[0]
managedObject.setValue(text, forKey: "TableEntity")
//save data into table
try context.save()


}
}
catch{}

关于ios - Core Data 第一次没有在实体中保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40632915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com