【发布时间】:2014-11-18 12:03:06
【问题描述】:
我有一个方法可以将对象保存到数据库中。按照逻辑,只要有网络,就会从服务器下载保存对象。方法如下。
func saveConfiguration (config : ConfigDao){
let entity = NSEntityDescription.entityForName("AppConfig", inManagedObjectContext:self.del.managedObjectContext!)
let configurationContext = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: self.del.managedObjectContext!) as AppConfig
configurationContext.categoriesVer = Int32(config.categoriesVer)
configurationContext.fireBallIp = config.fireBallIP
configurationContext.fireBallPort = Int32(config.fireBallPort)
configurationContext.isAppManagerAvailable = config.isAppManagerAvailable
configurationContext.isFireBallAvailable = config.isFireballAvailable
configurationContext.timePerQuestion = config.timePerQuestion
}
问题是这会添加所有对象,而不是替换它,所以我的第一个查询是
“如何在DB中只添加一个对象并在下一个对象到来时替换?”
我也想检索同一个对象,唯一的一个对象,通常在数组中,我确实获取最后一个索引,但是我怎样才能只保存一个并在数据库中获取相同的对象。
func fetchAppConfig() -> AppConfig {
var fetchRequest = NSFetchRequest (entityName: "AppConfig")
var error : NSError?
let fetchResults = del.managedObjectContext?.executeFetchRequest(fetchRequest, error: &error) as [NSManagedObject]
if error != nil {
println ("Error \(error)")
}
return fetchResults
}
谢谢。
【问题讨论】:
标签: ios database core-data swift