Я прочитал много вопросов о создании кросс-платформенной библиотеки для этих двух систем. Каждый ответ указывает на статическую библиотеку в качестве решения.Создание межплатформенного класса iOS/OS X
Я не хочу, чтобы в конечном итоге с статической библиотеки, я хотел бы создать класс с методами прошивкой и их аналог для OS X.
-(void)createColor:(NSColor*);
-(void)createColor:(UIColor*);
Первая проблема, что у меня есть что я не могу найти способ использовать классы, доступные только в определенной системе. Например, как я могу управлять функцией, которая работает с UIColor
в iOS и с NSColor
в OS X?
Если я создаю проект для iOS, когда я смотрю Foundation.h
Не удается найти NSColor.h
в списке заголовков.
Я думал использовать определения TARGET_OS_MAC
и TARGET_OS_IPHONE
, чтобы провести различие между двумя системами ... Я на правильном пути?
EDIT, чтобы добавить больше информации:
На данный момент у меня есть 2 цели: iOSTestApp и OSxTestApp. Для этих целей я включил необходимые рамки в зависимости от системы.
Использование TARGET_OS_MAC
и TARGET_OS_IPHONE
работает только при выборе OSXTestApp в качестве активной цели. Когда я выбираю iOSAppTest, Xcode возвращает ошибки для типа данных OS X (т.е. NSColor
)
Вот пример кода, который производит эти ошибки:
#if TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#elif TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#endif
Хотя, если я инвертировать определения это работает .. . Вот пример кода, который производит эти ошибки:
#if TARGET_OS_IPHONE
-(void)createColor:(UIColor*)color;
#elif TARGET_OS_MAC
-(void)createColor:(NSColor*)color;
#endif
ответил, что вам нужна статическую Библиотека для IOS - остальная часть вашего вопроса я не получаю –
я не могу понять вниз голосование. В любом случае я не хочу создавать динамическую библиотеку ... Если бы я сказал вам, что хочу создать мультиплатформу класса Helper, это звучит лучше? – MatterGoal
, потому что вопрос действительно неясен для меня, и ваш комментарий не помогает: D название «создает нестационарную библиотеку», в то время как вы говорите «Я не хочу динамическую библиотеку»: D –