M
Size: a a a
M
DA
enum FuncError: Error {
case incorrectDigitCount
}
let requiredDigitCount = 5
func myFunc(_ number: Int) throws {
let numberString = String(number)
guard numberString.count == requiredDigitCount else {
throw FuncError.incorrectDigitCount
}
numberString.forEach {
print($0)
}
}
try? myFunc(12345)
A
SS
protocol CharactersControllerDelegate: class {
func fetchCharacters(_ characters: [Character])
}
CharactersController
создаём weak var delegate:weak var delegate: CharactersControllerDelegate?
CharactersController
используем делегат. Например так:func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
delegate?.fetchCharacters(characters)
let vc = ProfileController()
navigationController?.pushViewController(vc, animated: true)
}
ProfileController
) мы этот протокол "принимаем":override func viewDidLoad() {
super.viewDidLoad()
CharactersController().delegate = self
}
extension ProfileController:
CharactersControllerDelegate {
func fetchCharacters(_ characters: [Character]) {
DispatchQueue.main.async {
print(characters)
}
}
}
ProfileController
даже не происходит обращение к функции протокола. А
protocol CharactersControllerDelegate: class {
func fetchCharacters(_ characters: [Character])
}
CharactersController
создаём weak var delegate:weak var delegate: CharactersControllerDelegate?
CharactersController
используем делегат. Например так:func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
delegate?.fetchCharacters(characters)
let vc = ProfileController()
navigationController?.pushViewController(vc, animated: true)
}
ProfileController
) мы этот протокол "принимаем":override func viewDidLoad() {
super.viewDidLoad()
CharactersController().delegate = self
}
extension ProfileController:
CharactersControllerDelegate {
func fetchCharacters(_ characters: [Character]) {
DispatchQueue.main.async {
print(characters)
}
}
}
ProfileController
даже не происходит обращение к функции протокола. PS
PS
SS
navigationController?.pushViewController
. Поэтому не вариант с сегвеем. Т.е. меня в первую очередь интересует как осуществить то что я задумал с помощью делегатов. Использование prepareForSegue всё же другое 🙁SS
PS
AY
protocol CharactersControllerDelegate: class {
func fetchCharacters(_ characters: [Character])
}
CharactersController
создаём weak var delegate:weak var delegate: CharactersControllerDelegate?
CharactersController
используем делегат. Например так:func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
delegate?.fetchCharacters(characters)
let vc = ProfileController()
navigationController?.pushViewController(vc, animated: true)
}
ProfileController
) мы этот протокол "принимаем":override func viewDidLoad() {
super.viewDidLoad()
CharactersController().delegate = self
}
extension ProfileController:
CharactersControllerDelegate {
func fetchCharacters(_ characters: [Character]) {
DispatchQueue.main.async {
print(characters)
}
}
}
ProfileController
даже не происходит обращение к функции протокола. SS
AT
b
protocol CharactersControllerDelegate: class {
func fetchCharacters(_ characters: [Character])
}
CharactersController
создаём weak var delegate:weak var delegate: CharactersControllerDelegate?
CharactersController
используем делегат. Например так:func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
delegate?.fetchCharacters(characters)
let vc = ProfileController()
navigationController?.pushViewController(vc, animated: true)
}
ProfileController
) мы этот протокол "принимаем":override func viewDidLoad() {
super.viewDidLoad()
CharactersController().delegate = self
}
extension ProfileController:
CharactersControllerDelegate {
func fetchCharacters(_ characters: [Character]) {
DispatchQueue.main.async {
print(characters)
}
}
}
ProfileController
даже не происходит обращение к функции протокола. AT
А
SS
CharactersController().delegate = self
b
CharactersController().delegate = self