Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 解析本地数据存储只返回一个对象_Ios_Swift_Parse Platform_Relationship - Fatal编程技术网

Ios 解析本地数据存储只返回一个对象

Ios 解析本地数据存储只返回一个对象,ios,swift,parse-platform,relationship,Ios,Swift,Parse Platform,Relationship,我有以下代码: var episodesToSendToParse = [PFObject]() let currentPodcast = PFObject(className: "Podcast") currentPodcast["name"] = name currentP["user"] = PFUser.currentUser() for episode in episodes { let episodes2 = PFObject(className: self.episodes

我有以下代码:

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;
    }
}
解析服务器可以节省大量时间。播客片段也保存在本地,但播客本身覆盖了我以前保存的任何其他播客,导致我的tableview总是只加载1个条目。我认为这可能是因为以下原因(摘自parse.com):

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

然而,我不知道如何补救

我正在运行Parse 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)
}

这是一个解析错误。见:


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

注释是关于其他事情的。这意味着,如果您更改并保存
PFObject
的实例,则本地数据存储区将不会存储旧实例和新实例,而只存储新实例。没有任何改变。你是对的,我编辑了粘贴在这里的代码,不让它太长,但忘记了这一点。但是xcode中没有输入错误,所以这不是问题所在