簡體   English   中英

保存和加載UITableView數組 - iOS Swift Parse

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM