Przeprowadzam migrację klasy UIViewController
, aby wyszkolić trochę za pomocą Swift. Z powodzeniem używam kodu Objective-C przez nagłówek pomostowy, ale potrzebuję importować plik stałych zawierający dyrektywy #define
.Jak korzystać z Objective-C#define z Swift
Widziałem w Using Swift with Cocoa and Objective-C (proste makra) następujące:
Proste Makra
Gdzie zazwyczaj stosowane dyrektywy
#define
zdefiniować prymitywne stałe w C i Objective-C, Zamiast tego zamiast tego używaj stałej globalnej. Na przykład stała definicja#define FADE_ANIMATION_DURATION 0.35
może być lepiej wyrażona w Swift zlet FADE_ANIMATION_DURATION = 0.35
. Ponieważ proste makra stałe przypominają bezpośrednio globalne zmienne Swift, kompilator automatycznie importuje proste makra zdefiniowane w plikach źródłowych C i Objective-C.
Wygląda na to, że jest to możliwe. Zaimportowałem plik zawierający moje stałe do nagłówka mostkowania, ale nie mam widoczności z mojego pliku .swift
, nie można go rozwiązać.
Co powinienem zrobić, aby moje stałe stały się widoczne dla Swifta?
UPDATE:
Wydaje pracy z NSString
stałych, ale nie z logicznych:
#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift
spróbuj prawda zamiast tak. –