方法需要启用Pin功能。

3
我正在尝试以以下方式检索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)

在一些地方,我看到建议将 $0.localDatastoreEnabled = true 放在 ParseClientConfiguration 中,但这也没有起作用。
另外,我无法这样做:configuration.localDatastoreEnabled = true,因为它是只读的。
你有其他的建议吗?
1个回答

2
为了使用本地数据存储,你需要完成以下两个步骤:
  1. 在配置中将 localDatastoreEnabled 设置为true。
  2. 为了从本地数据存储中获取数据,你需要先将其固定到本地数据存储中。假设你有一个对象或对象列表,它们是从服务器获取的或者通过代码手动创建的。当你在代码中拥有这个对象时,你需要编写以下内容将其固定到本地数据存储中(来自Parse文档):

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接