Ich entschuldige mich im Voraus für eine solche dumme Frage, aber ich habe nicht ganz bekommen, was ich von den anderen Antworten da draußen wissen wollte. Hier ist der Beispielcode von benutzerdefinierten Delegaten Protokoll aus dem Ray Wenderlich iOS natürlichNicht vollständig das Konzept der benutzerdefinierten Protokolle, Swift 3
protocol AddItemViewControllerDelegate: class {
func addItemViewControllerDidCancel(_ controller: AddItemViewController)
func addItemViewController(_ controller: AddItemViewController,
didFinishAdding item: ChecklistItem) }
Obwohl die Definition des Protokolls ganz klar ist, ist es eine Art Vertrag, der verwendet wird, um zu angepasst werden soll. Aber hier ist die Implementierung der Funktion des Protokolls in dem Körper der Conforming Klasse
func addItemViewController(_ controller: AddItemViewController,
didFinishAdding item: ChecklistItem) {
let newRowIndex = items.count
items.append(item)
let indexPath = IndexPath(row: newRowIndex, section: 0)
let indexPaths = [indexPath]
tableView.insertRows(at: indexPaths, with: .automatic)
dismiss(animated: true, completion: nil)
}
Und es gibt keine tatsächliche Nutzung von Controller Argumente, und was didFinishAdding? Soweit ich verstehe, ist didFinishAdding nur ein externer Name für das interne Argument Element. Aber wie es funktioniert, wie es aus dem Körper des Protokolls verstehen könnte, dass der Controller AddItemViewController sendet ChecklistItem an den entsprechenden Delegaten, oder ist es ein vordefinierter Funktionstyp?
Woher haben Sie diesen Code? Gibt es ein bestimmtes Tutorial von Ray, für das Sie eine URL angeben können? –