在设备上存储和更新数据的最佳方式
best way to store and update Data on device
每次,当用户启动应用程序时,应用程序都会向 API
发送请求并从中接收 Data
。我必须将旧数据存储在设备上的文件中,并在每次启动时更新它们。当数据大小超过 3-5 mb 时,读取可能会很长,不是吗?
我的问题是:如果我要在文件中存储超过 5 mb 的数据,我可以快速获取它们,还是只使用数据库?
如果是,我如何创建目录并将文件放入其中?
我应该存档它们吗?
我有一个类似的任务,并使用 CoreData 通过 DispatchQueue 进行后台获取。我认为这应该有所帮助。
编辑:
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
DispatchQueue.global(qos: .background).async {
let managedContext = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "ENTITY")
do {
self."NSManagedObject ARRAY" = try managedContext.fetch(fetchRequest)
} catch let error as NSError {
print("Could not fetch. \(error), \(error.userInfo)")
}
DispatchQueue.main.async {
//MAKING CHANGES TO VIEW
}
}
P.S。我不知道这个抓取速度有多快,尽管它对我的任务有很大帮助。
每次,当用户启动应用程序时,应用程序都会向 API
发送请求并从中接收 Data
。我必须将旧数据存储在设备上的文件中,并在每次启动时更新它们。当数据大小超过 3-5 mb 时,读取可能会很长,不是吗?
我的问题是:如果我要在文件中存储超过 5 mb 的数据,我可以快速获取它们,还是只使用数据库?
如果是,我如何创建目录并将文件放入其中?
我应该存档它们吗?
我有一个类似的任务,并使用 CoreData 通过 DispatchQueue 进行后台获取。我认为这应该有所帮助。
编辑:
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else {
return
}
DispatchQueue.global(qos: .background).async {
let managedContext = appDelegate.persistentContainer.viewContext
let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "ENTITY")
do {
self."NSManagedObject ARRAY" = try managedContext.fetch(fetchRequest)
} catch let error as NSError {
print("Could not fetch. \(error), \(error.userInfo)")
}
DispatchQueue.main.async {
//MAKING CHANGES TO VIEW
}
}
P.S。我不知道这个抓取速度有多快,尽管它对我的任务有很大帮助。