[英]Saving and loading UITableView array - iOS Swift Parse
我有以下几点; 它从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
缓存设置为忽略缓存。 这意味着,从服务器传入的信息都不会存储在用户硬盘上的临时文件夹中(正是您要查找的内容)。 因此,您必须使用其众多缓存策略之一明确告知对象在设备上缓存
对你来说,这将是好的:
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
因为你已经知道它是一个数组,并且通常不会将任何非类的东西大写。 它使阅读更容易
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.