2015-04-05 12 views
6

Jestem nowy w Xcode i w języku Swift. Próbuję zrozumieć użycie "importu" w ViewController i "importowanie ram" w moim projekcie. Przykład: jeśli używam CoreLocation, wystarczy zaimportować CoreLocation w moim ViewController, czy muszę zaimportować w moim projekcie zbyt CoreLocation.framework? Mówię to, ponieważ wszystko działa dobrze tylko przy użyciu importować CoreLocation na górze mojego ViewController, bez importowania jego ramy.Jaka jest różnica między "importem" frameworka i "łączeniem" z frameworkiem?

Dzięki!

Odpowiedz

7

Kod import w kodzie źródłowym ułatwia kompilację kodu, zapewniając znalezienie prawidłowych nagłówków. Sekcja "Link Binary with Libraries" w "Fazach kompilacji" w "Ustawieniach projektu" (teraz także na karcie "Podsumowanie" pod "Powiązanymi bibliotekami i ramami") określa, z którymi frameworkami i bibliotekami zostanie powiązany twój kod obiektowy.

Historycznie zawsze musieliśmy określać te dwa osobno, ale obecnie istnieje ustawienie projektu "Automatyczne tworzenie linków", które jeśli zostanie włączone, automatycznie połączy ramę z projektem, jeśli kod ten będzie dostępny pod numerem import. Musisz również włączyć "Enable Modules".

+0

Potrzebuję tylko dodać * import * w moim kodzie źródłowym bez dodawania frameworka, jeśli "Link Frameworks Automatically" jest włączony? – Giuseppe

+0

Tak, dla ram. W przypadku bibliotek (np. Libsqlite3.0.dylib itp.) Nadal trzeba je dodawać ręcznie, ale w przypadku frameworków należy je automatycznie dodawać. Uwaga: aby to działało, potrzebujesz zarówno "Linii łączy automatycznie" i "Włącz moduły". – Rob

+0

Tak, oba są WŁĄCZONE. Na przykład: w mojej aplikacji używam MapKit i CoreLocation. Zanim to zrobiłem, w sekcji "Możliwości" Mapy były włączone. Teraz ręcznie bez ramy łączącej, mam ją ustawioną na WYŁ. Jest to normalne? – Giuseppe

Powiązane problemy