方法需要启用固定

时间:2016-09-19 01:49:48

标签: ios swift parse-platform

我正在尝试通过以下方式在swift Parse SDK中检索本地数据存储区:

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

但是当调用fromLocalDatastore()时,看到了以下异常:

  

由于未捕获的异常而终止应用   'NSInternalInconsistencyException',原因:'方法需要固定   启用。“

在我的AppDelegate中,我在Parse配置之前调用Parse.enableLocalDatastore(),如下所示:

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

        Parse.initializeWithConfiguration(configuration)

在某些地方,我看到了在ParseClientConfiguration中放置$ 0.localDatastoreEnabled = true的建议,但它也没有用。

而且,我不能这样做:configuration.localDatastoreEnabled = true,因为它是一个只用的。

你有其他建议吗?

1 个答案:

答案 0 :(得分:2)

要使用本地数据存储,您需要做两件事:

  1. 在配置中将 localDatastoreEnabled 设置为true。
  2. 要从本地数据存储中获取,您需要先将其固定到本地数据存储。因此,假设您有一个从服务器获取或在代码中手动创建的对象或对象列表。在代码中有对象之后,需要编写以下内容以便插入本地数据存储(来自Parse docs):
  3.     let gameScore = PFObject(className:"GameScore")
        gameScore["score"] = 1337
        gameScore["playerName"] = "Sean Plott"
        gameScore["cheatMode"] = false
        gameScore.pinInBackground()

    pinInBackground()方法会将此对象固定到本地数据存储,然后在您固定之后,您可以通过代码从本地数据存储中获取它。