Связывание UIKit и AppKit - PullRequest
       1

Связывание UIKit и AppKit

2 голосов
/ 15 марта 2012

Я пытаюсь создать базовый объект, который можно использовать на iPhone и OS X в качестве источника данных.Поэтому у меня будет файл заголовка с такими утверждениями, как:

#ifdef TARGET_OS_IPHONE
#import <UIKit/UITableView.h>

@interface DataObject : NSObject<UITableViewDataSource>
#endif

#ifdef TARGET_OS_MAC
#import <AppKit/NSTableView.h>

@interface DataObject : NSObject<NSTableViewDataSource>

#endif

В моем текущем проекте XCode используется стандартный шаблон Apple iPhone.Моя проблема заключается в том, что когда я выбираю «Связать двоичные файлы с библиотеками» на вкладке «Фазы сборки», я вижу только связанные с iPhone фреймворки.

Конечно, я могу выбрать другой, а затем просмотреть, но не знаю, где AppKit.Рамка живет.Может кто-нибудь указать, где я могу найти эту платформу или как я могу иметь ссылку на проект как UIKit и AppKit

1 Ответ

5 голосов
/ 15 марта 2012

Могу ли я предложить немного другой дизайн?

Ваш DataObject должен ссылаться только на Foundation, который существует как на iOS, так и на Mac OS X. Он не содержит методов ни для одного из источников данных.

Затем в целевом приложении iOS есть категория DataObject, которая реализует методы UITableViewDataSource, а в целевом приложении OS X у вас есть категория DataObject, реализующая методы NSTableViewDataSource.

@interface DataObject(NSTableViewDataSource) <NSTableViewDataSource>

Код пользовательского интерфейса в приложениях для iOS и OS X будет настолько разным, что вам все равно понадобятся разные цели, и каждый из них будет ссылаться на соответствующий SDK.

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