我一直试图找出这个问题一段时间没有成功。我有一个按钮就像这样:
然而,结果是我每次启动应用程序时尝试创建的第一个新对象没有问题,但是如果我在同一个运行/会话期间创建另一个新对象,则先前创建的对象将被此新替换之一。
objectID保持不变,所以我猜测这与查询没有关闭(或类似的东西)有关,导致我修改前一个对象,而不是创建一个新对象。
有人可以解释一下吗?
@IBAction func recomBtn(sender: AnyObject) {
let query = PFQuery(className: "VideosInfo")
query.whereKey("Video_ID", equalTo: videoID)
query.findObjectsInBackgroundWithBlock {
(objects: [PFObject]?, error: NSError?) -> Void in
if error == nil {
if objects?.count == 0 {
print(objects)
videosTable["Video_ID"] = self.videoID
videosTable["Rating"] = 1
videosTable.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
print("Rating Created")
} else {
print(error?.description)
}}
} else {
objects![0].incrementKey("Rating")
print("Rating Increased")
videosTable.saveInBackground()
}} else {
print(error?.description)
}
}
}
答案 0 :(得分:0)
经过多次审查,我发现我犯了一个非常愚蠢的错误!我在函数之外声明了PFObject!所以当我完成按钮时,PFObject仍然存在! (因为在我转到另一个视频后我并没有真正关闭视图,所以在我关闭应用程序之前,PFObject仍然是该类的属性。)
非常感谢您的帮助!