gpt4 book ai didi

ios - 保存和加载 UITableView 数组 - iOS Swift Parse

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

我有以下内容;它从 Parse 后端获取数据并将类实例加载到 NSArray 以插入 UITableView

var ObjectIDClass = PFQuery(className: "TestObject")

ObjectIDClass.findObjectsInBackgroundWithBlock({
(ObjectsArray : [AnyObject]?, error: NSError?) -> Void in

var ObjectIDs = ObjectsArray as! [PFObject]
for i in 0...ObjectIDs.count-1 {
self.iDArray.append(ObjectIDs[i].valueForKey("objectId") as! String)
self.NameArray.append(ObjectIDs[i].valueForKey("PDFName") as! String)
self.tableView.reloadData()
}
})

这只适用于网络连接,一旦应用程序关闭然后在没有网络的情况下重新打开,表格就会是空白的。我的目标是将数据存储在 Local Datastore 中,如果没有连接,则从 Local Datastore 加载数据。我无法使用 pin 来解决这个问题,但可以肯定的是它是如何完成的。任何帮助将不胜感激!

最佳答案

而不是严格地关注 Local Datastore,这不是一件坏事。我只是觉得你使用它只是因为你想访问这些数据,比如当用户处于飞行模式时,或者当网络条件很差时。如果是这样,那么您可以利用 Parse 的内置缓存系统。 PFQuery 缓存默认设置为忽略缓存。这意味着,从服务器传入的所有信息都不会存储在用户硬盘上的临时文件夹中(正是您要找的)。因此,您必须使用 one of their many caching policies 显式告诉要缓存在设备上的对象

对你来说,这会很好:

query.cachePolicy = .CacheElseNetwork
// Results were successfully found, looking first on the
// disk and then on network.
query.findObjectsInBackgroundWithBlock {

您可以使用这些选项查看其他缓存方式:https://www.parse.com/docs/ios/guide#queries-caching-queries

小提示,请不要大写你的变量。它不遵循正确的命名约定。 ObjectIdDClass 应该在某种程度上类似于您要对其类执行的操作,因此它应该被称为 query 或其他名称。 ObjectsArray 应该是 objects 因为您已经知道它是一个数组并且您通常不会将任何不是类的东西大写。它使阅读更容易

关于ios - 保存和加载 UITableView 数组 - iOS Swift Parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32364269/

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