У меня странная проблема с тем же делегатом (-ами) среди некоторых методов в ViewController.swift. Например:Быстрая проблема с делегатом среди двух методов
У нас есть ViewController класс с ToDoItemsDelegate, такие как это:
ViewController.swift
class ViewController: UIViewController, ToDoItemsDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let todoitemsDelegate = ToDoItems(delegate: self)
print("Part 1: How many to do items?: \(todoitemsDelegate.items.count)")
secondPart()
}
func secondPart() {
let todoitemsDelegate = ToDoItems(delegate: self)
print("Part 2: How many to do items?: \(todoitemsDelegate.items.count)")
}
}
Выход:
Part 1: How many to do items?: 5
Part 2: How many to do items?: 0
Я не понимаю, почему метод secondPart() не дает правильное число, как первый метод " Первая часть: 5 ". Нет подсказки ... Это должно быть работой, если у вас есть делегат для работы среди методов в ViewController. Я попытался создать дополнительный делегат, и он поступил так же. Любая идея, что с ним не так? Любое предложение оценили. Благодаря!
Edited (я добавил больше деталей)
ToDoItems.swift
protocol ToDoItemsDelegate {
}
struct Item {
var title: String!
var description: Int!
}
class ToDoItems {
let delegate: ToDoItemsDelegate
init(delegate: ToDoItemsDelegate) {
self.delegate = delegate
}
var items = [Item]()
}
Ваш оператор печати в 'secondPart' не относится к экземпляру, который вы создаете в этой функции, это не похоже на то, что ваш текущий код должен даже компилироваться. – dan
Не совсем ясно, что вы пытаетесь выполнить с делегатами. – picciano
@picciano не понимает, почему у меня есть метод 'secondPart', но только 0 элементов, а не 5 элементов, таких как' first method' – HotDudeSmith