Kod importu Xcode Swift w ramach „celu aplikacji” kontra „element docelowy platformy” - jaka jest różnica?

Nov 20 2020

Importuję dwa pliki .swift do istniejącej aplikacji ObjC.

Dokument Apple „Importowanie Swift do Objective-C” wymienia te dwie opcje, ale nie rozumiem ich różnicy.

Nie znam różnicy między „App Target” a „Framework Target”.

Utworzyłem projekt aplikacji Xcode, a nie projekt ramowy. Czy to różnica?

Odpowiedzi

2 DuncanC Nov 20 2020 at 02:55

Cel platformy oznacza, że ​​projekt kompiluje kod do biblioteki, która może być następnie używana przez inne programy. Przykładami frameworków są CocoaPods.

Projekt może zawierać wiele celów. Możliwe jest zdefiniowanie w projekcie struktury i dostarczenie plików źródłowych dla tej platformy, a także skompilowanie aplikacji jako oddzielnego celu (zwykle robisz to, gdy aplikacja zużywa struktury, które tworzy)

Jeśli nie tworzysz własnych frameworków, wybierz opcję „Cel aplikacji”.

OlSen Nov 20 2020 at 07:40

Nie udało się udzielić poprawnej odpowiedzi w tym poście. Jeśli chodzi o twoje drugie pytanie, szybkie użycie błędu centralmanager odnosi się do metody-instancji, a nie var, sugeruje, że myślę, że mylisz różnicę między biblioteką statyczną a frameworkiem. Nie zagłębiając się w różnice i sposoby ich wykorzystania, może pomóc odróżnić je od innych.

  1. Biblioteka statyczna może korzystać ze struktur i innych bibliotek.
  2. Struktury mogą korzystać z innych struktur i (innych) bibliotek.
  3. Aplikacja może korzystać z bibliotek statycznych i różnych struktur.

Podczas tworzenia celów w obszarze roboczym / projekcie, który widzisz dla systemu iOS, istnieją różne szablony do tworzenia kodu pomocniczego. Okno dialogowe specjalnie rozróżnia bibliotekę statyczną i strukturę.

Każdy z nich utworzyłby cel w twoim projekcie i zwykle utworzył również schemat, aby skompilować je z oddzielnymi ustawieniami docelowymi. W ustawieniu celu aplikacji możesz określić, gdzie znajdują się nagłówki, co należy połączyć i skopiować do zasobów lub znaleźć gdzie indziej, aby działało. Gdy te cele są częścią jednego projektu, możesz skorzystać z funkcji Xcodes, które pomagają skompilować zależność przed kontynuowaniem i ostatecznie skompilować samą aplikację. Po skompilowaniu (w przykładzie) frameworku Xcode zachowa go, więc nie trzeba go kompilować za każdym razem, gdy kompilujesz aplikację w zależności od tego środowiska. Jak tylko zmienisz framework, możesz (możesz) oczekiwać, że Xcode skompiluje go ponownie. Jeśli cele są oddzielone od siebie w różnych obszarach roboczych / projektach, jesteś odpowiedzialny za monitorowanie tych zależności i ich ostatniej skompilowanej wersji, która będzie używana w Twojej aplikacji.

Ponieważ - nic dziwnego - jesteś odpowiedzialny za łączenie, definiowanie zależności oraz wdrażanie / umieszczanie i deklarowanie części potrzebnych do zapewnienia działania aplikacji w czasie wykonywania.

A tutaj zrzut ekranu przedstawiający różne cele w jednym projekcie (losowe nazewnictwo) oraz ustawienia struktury, bibliotek i osadzonej zawartości dla wybranego celu aplikacji .