2016-01-02 13 views
15

Kiedy używam prototypowego widoku tabeli, zawsze muszę dostosować się do protokołu TableViewDataSource. Zawsze zapominam, jakie metody muszę zastosować, więc za każdym razem muszę przyjrzeć się źródłu protokołu. To naprawdę czasochłonne.Sposób automatycznego dostosowania Xcode do protokołu

Myślę, że Xcode musi mieć funkcję, która automatycznie implementuje potrzebne metody, prawda? Podobnie jak IntelliJ IDEA, Eclipse i Visual Studio.

Chcę wiedzieć, gdzie mogę znaleźć tę funkcję. Jeśli nie ma, czy istnieje obejście tego problemu? Przynajmniej nie muszę otwierać kodu źródłowego protokołu za każdym razem, kiedy go dostosowuję.

Jeśli nie rozumiesz, co mam na myśli, oto niektóre kod:

Mam protokół

protocol Hello { 
    func doStuff() 
} 

Kiedy z nim zgodne,

class MyClass: Hello { 

} 

często don” • Zapamiętaj nazwy metod, które muszę wprowadzić. Jeśli Xcode ma funkcję, która zmienia powyższy kod, na:

class MyClass: Hello { 
    func doStuff() { 
     code 
    } 
} 

Teraz rozumiesz co mam na myśli? Chcę tylko zapytać, gdzie znaleźć taką funkcję.

+2

Zobacz podobne pytanie http://stackoverflow.com/ques/27331588/autoimplement-swift-protocol-methods-in-xcode –

+0

Połączona odpowiedź jest jedyną metodą.Po utworzeniu kilku kontrolerów tableview metody będą w twojej pamięci :) – Paulw11

+0

O ile rozumiem to pytanie, to nie jest to samo co powyższy link z @AlessandroChiarotto. To pytanie dotyczy implementowania potrzebnych funkcji, gdy zgadzam się z protokołem. Mam nadzieję, że ktoś zna odpowiedź wkrótce. – AlexWoe89

Odpowiedz

9

Dobrze jeśli zrozumiałem problem to tutaj jest obejście:

spróbować zdefiniować metody z protokołem jako przedrostek jak tutaj hello wtedy nie będziesz musiał pamiętać metody po prostu zacznij wpisywać nazwę protokołu i Xcode poprosi Ci ze wszystkimi dostępnymi metodami zobaczyć tutaj:

enter image description here

A jeśli chcesz protokół autouzupełniania spróbować Snippets

+0

Dziękuję bardzo! To bardzo pomocne! – Sweeper

+5

Złe praktyki nazewnictwa nie są prawidłowym rozwiązaniem tego, co jest wadą IDE. – Raphael

+0

Jest to zgodne z praktyką nazewnictwa systemu iOS, co można zobaczyć w nazwach funkcji aplikacji AppDelegate lub tableView nazywanie źródeł danych. Możesz również odnieść się do raywanderlich [szybkie wytyczne] (https://github.com/raywenderlich/swift-style-guide#delegates) –

4

Xcode 9, dba o realizację obowiązkowych metod Swift DataSource & Delegatów.

Spójrz na tych migawek z przykładu UICollectionViewDataSource:

Wskazanie ostrzeżenia do wdrożenia metody Protokół:

enter image description here

Klikając na przycisk 'Fix', dodała wszystkie obowiązkowe metody:

enter image description here

+0

Czy wymaga to włączenia określonego ustawienia? Nadal nie otrzymuję opcji automatycznego generowania metod z Xcode 9.2 – slackwars

+0

@slackwars - Czy możesz podzielić się tym, co (który protokół) wypróbowałeś. To ostrzeżenie/błąd będzie widoczny, jeśli istnieje jakakolwiek obowiązkowa funkcja, którą należy obowiązkowo wdrożyć. Jeśli wszystkie funkcje/metody są opcjonalne (lub jeśli już zostały dodane/zaimplementowane w kodzie), to ostrzeżenie nie zostanie wyświetlone/pokazane. – Krunal

+0

klasa ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource { – slackwars

Powiązane problemy