如何防止重复输入解析?

时间:2015-06-15 06:48:23

标签: ios objective-c iphone swift parse-platform

我试图将歌曲信息保存为解析,但如果该歌曲已存在于解析中,我希望我的代码无所事事。

我在下面尝试过以下代码:

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

1 个答案:

答案 0 :(得分:4)

我建议在Parse Cloud代码上实现一个简单的beforeSave触发器,以检查新的条目歌曲是否已经存在(基本上你将创建一个或多个字段uniques。例如:

cell.backgroundColor = UIColor.orangeColor()

希望它有所帮助。