[英]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.