iphone - компилятор условно на заголовке - PullRequest
0 голосов
/ 21 марта 2010

У меня есть проект, который генерирует приложения для двух целей.

Одна из целей должна включать один дополнительный протокол делегата, который не должен присутствовать в другом. Итак, я создал макрос на XCode и объявил заголовок следующим образом:

#ifdef TARGET_1
@interface myViewController : UIViewController <UIScrollViewDelegate, UIPopoverControllerDelegate>
#endif

#ifdef TARGET_2
@interface myViewController : UIViewController <UIScrollViewDelegate>
#endif

{ .... bla bla.... }

Проблема в том, что Xcode ненавидит это "двойное" объявление @interface и дает мне всевозможные ошибки. Когда я ставлю только одно из объявлений, ошибки исчезают.

Как это решить? спасибо за любую помощь.

Ответы [ 2 ]

1 голос
/ 21 марта 2010

Лично я не стесняюсь писать что-то вроде:

@interface myViewController : UIViewController <UIScrollViewDelegate
#ifdef TARGET_1
, UIPopoverControllerDelegate
#endif
>

Это выглядит ужасно, но я считаю, что это лучше отражает семантику.

Вы можете сделать еще лучше:

#ifndef TARGET_1
@protocol UIPopoverControllerDelegate
@end
#endif

@interface myViewController : UIViewController <UIScrollViewDelegate, UIPopoverControllerDelegate>

Все это, конечно, не делает недействительными предыдущие ответы!

1 голос
/ 21 марта 2010

Если вы получаете повторное тестирование, вы должны были определить оба символа.Проверьте, что ваши TARGET_1 и TARGET_2 не определены вместе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...