В моем приложении пользователь может добавлять имена младенцев. Я хочу, чтобы этот ребенок не был добавлен раньше, поэтому я могу добавить его. Если он там, появляется сообщение об ошибке. Проблема здесь, я не могу проверить, добавлен ли этот ребенок или нет. Код для проверки никогда не выполняется. Я не знаю почему. Я пытался выяснить проблему во многих отношениях. Но когда код проверки ecxuted, предупреждающее сообщение появляется с черным экраном и добавляет ребенка любым способом!Проверьте, существует ли этот объект до
Это мой код. Этот код спасает ребенка любым способом, независимо от того, добавлен он или нет.
let addBaby = PFObject(className: "Baby")
let CheckBaby = PFQuery(className: "Baby")
CheckBaby.whereKey("user1", equalTo: ParentID!)
CheckBaby.whereKey("user2", equalTo: PFUser.currentUser()!)
CheckBaby.findObjectsInBackgroundWithBlock({ (object:[PFObject]?,
error:NSError?) -> Void in
for object in object! {
if object["baby_name"] as! String == self.babyName {
print("This baby has been added before.")
let myAlert = UIAlertController(title:"Error", message:"This baby has been added before.", preferredStyle:UIAlertControllerStyle.Alert)
let okAction = UIAlertAction (title: "OK", style: UIAlertActionStyle.Default, handler: nil)
myAlert.addAction(okAction)
self.presentViewController(myAlert, animated: true, completion: nil)
return}
else{
}
}// end for
})
addBaby.setObject(self.ParentID!, forKey: "user1")
addBaby.setObject(self.babyName.text!, forKey: "baby_name")
addBaby.setObject(self.parentName.text!, forKey: "parent_fname")
addBaby.setObject(self.babyClass.text!, forKey: "class_name")
addBaby.setObject(PFUser.currentUser()!, forKey: "user2")
addBaby.saveInBackgroundWithBlock { (saved:Bool, error:NSError?) -> Void in
if saved {
self.navigationController?.popViewControllerAnimated(true)
} else {
error!.localizedDescription
}
}
Благодарим за помощь!
Такая же проблема !! этот код не работает и добавил ребенка в любом случае! если объект ["baby_name"] как! Строка == self.babyName { babyNotFound = false print («Этот ребенок был добавлен раньше.») let myAlert = UIAlertController (название: «Ошибка», сообщение: «Этот ребенок добавлен раньше»., PreferredStyle: UIAlertControllerStyle.Alert) пусть okAction = UIAlertAction (название: "OK", стиль: UIAlertActionStyle.Default, обработчик: ноль) myAlert.addAction (okAction) self.presentViewController (myAlert, анимированные: правда, завершение: ноль) возвращение} –
Yaay, это сработало !! Я попробовал ваше предлагаемое решение и функцию dispatch_async. Кроме того, я понял, что забыл поставить self_babyName.text в сравнении. –
Спасибо вам большое! –