将项目从一组类转换为.dylib的过程?

时间:2010-11-03 03:48:42

标签: objective-c dylib dynamic-library

我已经在一个宠物项目上工作了几个星期,并开始认为它可能会被我和一些朋友使用。目前,它只是一个XCode项目中的一堆Objective-C类,带有一个main(),我一直用它来测试各种功能。如果我把它打包成.dylib文件,那么在项目中使用这个库似乎最容易。正如我在其他语言中发现的那样,将此作为事后的想法是一种令人讨厌的事情,理想情况下是最低级别的养殖。 :)

我对Objective-C / Xcode世界很陌生,但根据Apple的"Dynamic Library Programming Topics",我的印象是,我只需要将我的界面文件重新调整为以下格式:

@protocol Person
- (void)setName:(NSString*)name;
- (NSString*)name;
@end

@interface Person : NSObject <Person> {
    @private
NSString* _person_name;
}
@end

(取自引用的Apple doc)。

其中:我正在定义一个协议,其中包含我希望包含在.dylib中包含的类的方法,然后定义一个接口,该接口是实现上述协议的NSObject的子类。在这里宣布伊娃。

一些问题:

我是否能够从协议中省略我不希望“导出”到dylib的方法?

如果我在dylib中有类的子类,我是否为子类创建另一个协议,并使新创建的类的超类实现该协议?例如,如果我是子类的人:

@protocol CatPerson
/* any additional methods for CatPerson not in Person */
- (void) protractClaws;
- (void) retractClaws; 
@end

@interface CatPerson : Person <CatPerson> {
    @private
/* any additional ivars for CatPerson not in Person */
NSNumber *clawCount;
}

这可能是一个非常微不足道的问题,但是在我通过将所有类移动到.dylib之前咬牙切齿之前,我正试图弄清楚我需要做的一切。

1 个答案:

答案 0 :(得分:0)

Project-&gt; New Target ...在您获得的面板中选择“dylib”。使它成为当前目标。按住Ctrl键并单击组&amp;文件tableview标题,检查“目标成员资格”。选中要包含在dylib中的文件旁边的框。