Автоматическое использование методов протокола Swift в XCode
Я только начинал с быстрого языка и, исходя из java, он отлично выглядит до сих пор.
Но я действительно что-то пропустил:
У Eclipse была эта замечательная функция: когда я добавил "реализует XYZ", он предоставил мне функцию автоматического выполнения необходимых заглушек функций. Это огромная временная пауза.
XCode, похоже, не имеет этой функции, или я что-то не хватает?
Я нашел плагин accessorize, но это, похоже, работает только с Objective C..
Есть ли решение?
PS. Я использую XCode 6.1.1
Ответы
Ответ 1
Xcode 9
Xcode 9 теперь поддерживает соответствие методам протокола с помощью "fix it". Он автоматически заполнит недостающие методы для вас. Это было объявлено в WWDC 2017.
![введите описание изображения здесь]()
Обновление: Это, похоже, не работает для определенных вами протоколов, к сожалению.Забастовкa >
Ответ 2
NB: этот ответ верен для Xcode до версии 9; в версии 9 Apple добавила возможность автоматически исправлять недостающие методы протокола; см. Ответ Guy Daher.
Я только что создал проект iOS и направился в свой файл UIViewController.swift. Там я объявил, что он реализовал UITableViewDelegate:
class ViewController: UIViewController, UITableViewDelegate {
Теперь, когда я перехожу в тело класса и начинаю вводить "tab...", я вижу соответствующие автозаполнения:
![Xcode autocompletions]()
Нажатие Enter затем вставляет заглушку функции, при этом курсор готов к кодированию.
Это так, как Xcode автоматически заполняет протоколы (или унаследованные методы класса.) Если вы хотите сделать все сразу, я не думаю, что это возможно, к сожалению. Но вы всегда можете Cmd -click или Option - Cmd -click (который использует окно вторичного редактора) в имени протокола, чтобы перейти к его определению, которое в основном представляет собой список всех его методов, которые вы можете скопировать и вставьте в свой код. Вам нужно немного подобрать немного, но не так много.
Ответ 3
Xcode 9, берет на себя выполнение обязательных методов Swift Datasource и Delegates.
Посмотрите на эти снимки, с примером UICollectionViewDataSource
:
Указание предупреждения для реализации методов протокола:
![введите описание изображения здесь]()
Нажав кнопку "Исправить", он добавил все обязательные методы:
![введите описание изображения здесь]()