swift 解析如何在本地数据存储中保存对象并显示它们?

swift parse how to save objects in local datastore and show them?

我已经启用 local datastore in app delegate,我已经进行了查询,但是如果有 no internet,我该如何保存这些对象以查看它们?

这是我的查询:

query.findObjectsInBackgroundWithBlock {
         (objects, error) -> Void in
         if error == nil && objects != nil
         {
            self.messages = objects!
            for object in objects! {
               inboxphotos.append(object.objectForKey("photo") as! PFFile)
               inboxusers.append(object.objectForKey("username") as! String) }
          }
}

现在我怎样才能local query查看这个objects

调用前findObjectsInBackgroundWithBlock,

query.fromLocalDatastore()

这将强制您的查询从 localDataStore 中提取。您的代码应如下所示:

query.fromLocalDatastore()
query.findObjectsInBackgroundWithBlock {
         (objects, error) -> Void in
         if error == nil && objects != nil
         {
            self.messages = objects!
            for object in objects! {
               inboxphotos.append(object.objectForKey("photo") as! PFFile)
               inboxusers.append(object.objectForKey("username") as! String) }
          }
}

为了在本地保存对象,您必须首先启用localDataStore:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    Parse.enableLocalDatastore()
    Parse.setApplicationId("parseAppId", clientKey: "parseClientKey")
  }
}

使用 localDataStore 保存对象的推荐方法是使用 saveEventually:

myObject.saveEventually()

您也可以使用 .pinInBackground() 将对象保存在 localDataStore "permanently" 中。固定对象可确保当您再次从服务器获取本地对象时自动更新它们。是实现服务器数据离线缓存的理想方式。