繁体   English   中英

解析本地数据存储区仅返回一个对象

[英]Parse Local Datastore returns only one object

我有以下代码:

var episodesToSendToParse = [PFObject]()
let currentPodcast = PFObject(className: "Podcast")

currentPodcast["name"] = name
currentP["user"] = PFUser.currentUser()

for episode in episodes {
  let episodes2 = PFObject(className: self.episodesClass)
  episodesToParse["title"] = episode.title
  episodesToParse["parent"] = currentPodcast
  episodesToSendToParse.append(episodes2)
}

PFObject.pinAllInBackground(episodesToSendToParse).continueWithBlock { (task: BFTask!) -> AnyObject! in
        if let error = task.error {
            print(error)
            return task;
        }
        print("finished pinning")
        return task;
    }

PFObject.saveAllInBackground(episodesToSendToParse).continueWithBlock { (task: BFTask!) -> AnyObject! in
        if let error = task.error {
            print(error)
            return task;
        }
        NSNotificationCenter.defaultCenter().postNotificationName("podcastSaved", object: self)
        print("finished saving")
        return task;
    }
}

它可以很好地保存到Parse的服务器。 播客情节也保存在本地,但是播客本身覆盖了我之前保存的任何其他播客,导致我的表视图始终仅加载1个条目。 我认为这可能是由于以下原因(摘自parse.com):

启用本地数据存储有一些副作用,您应该注意。 启用后,任何给定PFObject都只有一个实例。 例如,假设您有一个“ GameScore”类的实例,其对象标识为“ xWMyZ4YEGZ”,然后对带有该对象标识的“ GameScore”的所有实例发出了PFQuery。 结果将是您已经在内存中的对象的相同实例。

但是我不知道该如何解决。

我正在运行解析1.10.0

您在代码中有错字。

替换为:

for episode in episodes {
  let episodes = PFObject(className: self.episodesClass)
  episodesToParse["title"] = episode.title
  episodesToParse["parent"] = currentPodcast
  episodesToSendToParse.append(episodesToParse)
}

有了这个:

for episode in episodes {
  let episodes = PFObject(className: self.episodesClass)
  episodes["title"] = episode.title
  episodes["parent"] = currentPodcast
  episodesToSendToParse.append(episodes)
}

这是一个解析错误。 请参阅: #535

使用pinAllInBackground(objects: [PFObject]?, withName: String)是一种解决方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM