Подтвердить что ты не робот

Автоматическое использование методов протокола Swift в XCode

Я только начинал с быстрого языка и, исходя из java, он отлично выглядит до сих пор. Но я действительно что-то пропустил:

У Eclipse была эта замечательная функция: когда я добавил "реализует XYZ", он предоставил мне функцию автоматического выполнения необходимых заглушек функций. Это огромная временная пауза.

XCode, похоже, не имеет этой функции, или я что-то не хватает?

Я нашел плагин accessorize, но это, похоже, работает только с Objective C..

Есть ли решение?

PS. Я использую XCode 6.1.1

4b9b3361

Ответ 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:

Указание предупреждения для реализации методов протокола:

введите описание изображения здесь

Нажав кнопку "Исправить", он добавил все обязательные методы:

введите описание изображения здесь