2012-03-15 5 views
2

iPhone 및 OS X에서 데이터 소스로 사용할 수있는 기본 객체를 만들려고합니다. 따라서 다음과 같은 문장을 포함한 헤더 파일을 가지고 있습니다 :UIKit 및 AppKit 모두 연결

#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 템플릿을 사용하고 있습니다. 내 문제는 내가 "Build Bases"탭에서 "Link With Binary With Libraries"를 선택할 때입니다. 아이폰 관련 프레임 워크 만보고 있습니다.

물론 다른 항목을 선택한 다음 찾아 볼 수 있지만 AppKit.Framework가 어디에 있는지는 알 수 없습니다. 누구나이 프레임 워크를 찾을 수있는 곳을 지적하거나 UIKit과 AppKit에 대한 프로젝트 링크를 어떻게 가질 수 있습니까?

+0

파인더를 사용하여 프레임 워크를 찾으십시오 :-) AppKit.h를 검색하면 충분합니다. –

+0

하루는 쉬어야합니다. 찾았습니다. /System/Library/Frameworks/Appkit.Framework – hugo

답변

5

약간 다른 디자인을 제안 할 수 있습니까?

DataObject은 iOS와 Mac OS X에 모두 존재하는 Foundation에만 연결해야합니다. 데이터 소스 중 하나에 대한 방법이 없습니다.

그런 다음 iOS 앱 대상에서 UITableViewDataSource 메소드를 구현하는 DataObject에 카테고리가 있고 OS X 애플리케이션 타겟에서 NSTableViewDataSource 메소드를 구현하는 DataObject에 카테고리가 있습니다.

@interface DataObject(NSTableViewDataSource) <NSTableViewDataSource> 

iOS 및 OS X 앱의 사용자 인터페이스 코드는 너무 달라서 어쨌든 서로 다른 대상이 필요하며 관련 SDK와 각각 연결됩니다.

+0

우수한 디자인 제안. – KPM