Fehler: Cannot convert value of type '(_, _) -> Void' zu erwarten argument type '((UIAlertAction) -> Void)?'
Ich habe eine Schaltfläche erstellt, die in meinem Main.storyboard
, die einen Namen hat (eine var
) benannt deleteButton
. Diese Taste ist in jeder Zelle.
Wenn der Benutzer den Knopf drückt, wird eine Warnmeldung erscheint, um das löschen zu bestätigen. Hier ist der code.
@IBAction func deletePinpoint(sender: UIButton) {
let alertController = UIAlertController(title: "Delete pinpoint", message: "Do you want to delete this pinpoint?", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Yes", style: UIAlertActionStyle.Default, handler: { (action, indexPath) -> Void in
if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext {
let pinpointToDelete = self.fetchResultController.objectAtIndexPath(sender.tag) as! Pinpoints
managedObjectContext.deleteObject(pinpointToDelete)
do {
try managedObjectContext.save()
} catch {
print(error)
}
}
}))
alertController.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil))
self.presentViewController(alertController, animated: true, completion: nil)
}
In der cellForRowAtIndexPath:
Methode, die ich erklärt haben, diese Linie:
cell.deleteButton.tag = indexPath.row
Bekomme ich die Fehlermeldung auf der 3. Zeile (beginnend mit alertController.addAction
), nämlich:
Nicht konvertieren kann der Wert des Typs '(_, _) -> Void' zu erwarten argument type '((UIAlertAction) -> Void)?'
Wie kann ich dieses Problem beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Des hf-parameter von
UIAlertAction
Konstruktor, nimmt die ausgewählte Aktion-Objekt als einzigen parameter.Stattdessen:
werden Sie wollen, dies:
(sender.tag)
sagen, Nicht konvertieren kann der Wert von Typ 'Int' an erwartet Argumenttyp 'NSIndexPath'.