2016-01-07 15 views
5

Właśnie zauważyłem, że plik o nazwie ViewController.swift (Interface) został stworzony automatycznie przez Xcode, kiedy stworzyłem mój pierwszy ViewController.Co to jest plik ViewController.swift (Interface) dla - w Counterparts

Czy zajęcia w Swift mają/potrzebują interfejsów takich jak w Objective-C i są tworzone za kulisami przez Xcode?

Czy ktoś może być tak uprzejmy i wyjaśnić, jaki jest cel tego pliku?

ViewController.swift (interfejs)

import UIKit 

internal class ViewController : UIViewController { 

    override internal func viewDidLoad() 

    override internal func didReceiveMemoryWarning() 
} 

Odpowiedz

9

w C i Objective-C, trzeba oddzielne (.c, .M) plików interfejsu (.h) i realizacji.

  1. Plik interfejs daje szybki przegląd wszystkich metod i właściwości tej klasy, które są dostępne dla innych kodu (pod warunkiem, że zaimportować plik interfejsu). To jest jak indeks rozdziału książki.
  2. Implementacja, z drugiej strony, jest tam, gdzie zapisany jest rzeczywisty kod metody.

w Swift, z drugiej strony, nie ma takiego rozróżnienia i zajęcia są automatycznie dostępne dla wszystkich kodzie. Zaletą jest oczywiście to, że liczba plików źródłowych w projekcie jest z grubsza zredukowana do połowy i nie ma potrzeby przechodzenia między plikiem interfejsu a plikiem implementacyjnym podczas kodowania (wszystko to "w jednym miejscu").

Tak więc, aby nadrobić brak pliku "tylko interfejs" (jak nagłówki w C/Objective-C), Xcode generuje jeden "w locie" tylko w celu pokazania dostępnych metod i właściwości tej klasy. Zauważysz, że brakuje ciał metod, a także właściwości i metody zadeklarowane jako private (ponieważ są niedostępne poza klasą, a więc z definicji nie są częścią "interfejsu").

To nie jest prawdziwy plik, który znajduje się w dowolnym miejscu w systemie plików (o ile wiem).

+0

Interesujące, więc jest to szybkie streszczenie, które pozwala dowiedzieć się, jakie metody lub właściwości eksponujesz światu zewnętrznemu (lub między projektami), widzę, że jest to funkcja zabójcza podczas tworzenia interfejsów API/frameworków, szczególnie dlatego, że Swift nie wymaga plików interfejsu. Wielkie dzięki za wyjaśnienie. –

1

w Swift nie masz oddzielny interfejs (lub nagłówków plików) i pliki wdrożeniowe. Po prostu tworzysz interfejs klasy i implementację razem w tym samym pliku. Pozostałe części projektu automatycznie uzyskają dostęp do typu wprowadzonego w danym pliku.

Teraz przychodzimy do ViewController.Swift, jest to plik, w którym znajduje się logika warstwy kontrolnej widoku. Proszę odnieść to documentation-

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/