2016-09-19 41 views
2

我試圖檢索本地數據存儲在迅速解析SDK方式如下:方法需要鋼釘啓用

let query = PFQuery(className: "Cliente") 
     query.fromLocalDatastore() 
     do{ 
      object = try query.getFirstObject() 
     } 
     catch{ 
      return nil 
     } 

但當fromLocalDatastore()被調用時,鋸後續例外:

由於未捕獲異常而終止應用程序 'NSInternalInconsistencyException',原因:'方法要求已啓用Pinning '。

在我的AppDelegate,我之前解析配置調用Parse.enableLocalDatastore(),這樣的:

Parse.enableLocalDatastore() 
     let configuration = ParseClientConfiguration{ 
      $0.applicationId = "FF6itU7EzyH7dN10IL2KERRddpC7HYZUdTIA7HYV" 
      $0.clientKey = "eQLh9J92OKMydnflk5VNFOVZnlkzLvCgVKQ6QtLr" 
      //$0.server = "" 
     } 

     Parse.initializeWithConfiguration(configuration) 

在一些地方,我看到的建議把$ 0.localDatastoreEnabled = TRUE內ParseClientConfiguration但它也沒有工作。

而且,我不能這樣做:configuration.localDatastoreEnabled = true,因爲它是一個只讀。

你有沒有另外的建議?

回答

2

,以使用本地數據存儲,你需要做兩件事情:

  1. 設置在配置localDatastoreEnabled爲true。
  2. 爲了從本地數據存儲中獲取,您需要先將其固定到本地數據存儲。因此,讓我們假設您有一個從服務器獲取或在代碼中手動創建的對象或對象列表。當你在你的代碼的對象,你需要編寫,以銷到本地數據存儲(從解析文檔)以下:

let gameScore = PFObject(className:"GameScore") 
 
    gameScore["score"] = 1337 
 
    gameScore["playerName"] = "Sean Plott" 
 
    gameScore["cheatMode"] = false 
 
    gameScore.pinInBackground()

pinInBackground()方法會將此對象固定到本地數據存儲區,並在固定它之後,您可以通過代碼從本地數據存儲中獲取它。