ios - tienen - quitar penalizacion por contenido duplicado
¿Cómo prevenir la entrada duplicada en el análisis? (1)
Sugiero implementar un desencadenador simple beforeSave, en el código de Parse Cloud, para verificar si la nueva canción de entrada ya existe (básicamente vas a hacer uno o más campos únicos, por ejemplo:
Parse.Cloud.beforeSave("Musics", function(request, response) {
var newEntrySong = request.object;
var querySongs = new Parse.Query("Musics");
querySongs.equalTo("title", newEntrySong.get("title"));
querySongs.equalTo("description", newEntrySong.get("description"));
// this could be a sort of signature for your song, to make more unique (skipping spaces and new lines for example)
querySongs.equalTo("md5Title", newEntrySong.get("md5Title"));
querySongs.first({
success: function(temp) {
response.error({errorCode:123,errorMsg:"Song already exist!"});
},
error: function(error) {
response.success();
}
});
});
Espero eso ayude.
Estoy tratando de guardar la información de la canción para analizar, pero si la canción ya existe en el análisis quiero que mi código simplemente no haga nada.
He intentado este código a continuación:
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!)")
}
}
el código de arriba muestra el resultado a continuación en el registro:
Recuperó con éxito 4 puntajes. canción ya existe Recuperado con éxito 4 puntuaciones. canción ya existe Recuperado con éxito 4 puntuaciones. canción ya existe Recuperado con éxito 4 puntuaciones. canción ya existe éxito tener éxito éxito tener éxito éxito tener éxito éxito éxito éxito éxito
¿Por qué mi bucle for, haciendo un bucle más que Objects.count? y ¿cómo puedo evitar la entrada de duplicidad en el análisis?
dame algún consejo, no importa en obj o rápido