Przeczytałem wiele pytań na temat tworzenia biblioteki międzyplatformowej dla tych 2 systemów. Każda odpowiedź wskazuje na bibliotekę statyczną jako rozwiązanie.Tworzenie wieloplatformowej iOS/OS X klasy
Nie chcę skończyć ze statycznej biblioteki, chciałbym stworzyć klasę z metod iOS i ich odpowiedniki dla OS X.
-(void)createColor:(NSColor*);
-(void)createColor:(UIColor*);
Pierwszy problem, który mam jest że nie mogę znaleźć sposobu na użycie klas, które są dostępne tylko w określonym systemie. Na przykład, jak mogę zarządzać funkcją działającą z UIColor
w systemie iOS i NSColor
w systemie OS X?
Jeśli utworzę projekt dla iOS, gdy zagłębię się w Foundation.h
, nie mogę znaleźć NSColor.h
na liście nagłówków.
myślałem wykorzystać definicje TARGET_OS_MAC
i TARGET_OS_IPHONE
dokonać rozróżnienia między tymi dwoma systemami ... Jestem na dobrej drodze?
EDIT, aby dodać więcej info:
Obecnie mam 2 cele: AN iOSTestApp i OSxTestApp. Dla tych celów zawarłem potrzebne ramy w zależności od systemu.
Używanie TARGET_OS_MAC
i TARGET_OS_IPHONE
działa tylko wtedy, gdy wybiorę OSXTestApp jako aktywny obiekt docelowy. Kiedy wybrać iOSAppTest, Xcode zwraca błędy dotyczące typu danych OS X (tj NSColor
)
Oto przykład kodu, który produkuje te błędy:
#if TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#elif TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#endif
Chociaż gdybym odwrócić definicje to działa .. . Oto przykład kodu, który produkuje te błędy:
#if TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#elif TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#endif
odpowiedział, że potrzebujesz statycznej biblioteki dla IOS - pozostała część pytania Nie dostanę –
Nie mogę zrozumieć głosowania w dół. W każdym razie nie chcę tworzyć biblioteki dynamicznej ... Jeśli powiedziałem Ci, że chcę utworzyć platformę dla wielu użytkowników klasy pomocniczej, czy to brzmi lepiej? – MatterGoal
, ponieważ pytanie jest dla mnie niejasne, a komentarz nie pomaga: D tytuł to "tworzenie niestatycznej biblioteki", gdy mówisz "Nie chcę dynamicznej biblioteki": D –