我试图将歌曲信息保存为解析,但如果该歌曲已存在于解析中,我希望我的代码无所事事。
我在下面尝试过以下代码:
var Music = PFObject(className:"Musics")
var query = PFQuery(className:"Musics")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) scores.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
var songTitle = object.objectForKey("songTitle") as? String
if songTitle != title {
Music["createdBy"] = PFUser.currentUser()
Music["songTitle"] = title
Music["albumCover"] = imageFile
Music["songArtist"] = artist
Music.saveInBackgroundWithBlock {
(success: Bool, error: NSError?) -> Void in
if (success) {
println("succeed")
} else {
// There was a problem, check error.description
println("error jeh")
}
}
}else{
println("song already exist")
}
}
}
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo!)")
}
}
上面的代码在日志上给出了以下结果:
成功检索了4个分数。 歌已经存在 成功检索到4个分数。 歌已经存在 成功检索到4个分数。 歌已经存在 成功检索到4个分数。 歌已经存在 成功 成功 成功 成功 成功 成功 成功 成功 成功 成功 成功 成功
为什么我的循环,循环比Objects.count更多?如何防止解析时出现重复输入?
给我任何建议,无论是obj c还是swift
答案 0 :(得分:4)
我建议在Parse Cloud代码上实现一个简单的beforeSave触发器,以检查新的条目歌曲是否已经存在(基本上你将创建一个或多个字段uniques。例如:
cell.backgroundColor = UIColor.orangeColor()
希望它有所帮助。