【发布时间】:2011-05-04 07:12:40
【问题描述】:
我已经做了几个星期的宠物项目,并开始认为它可能会被我和几个朋友使用。目前,它实际上只是一个 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 文档)。
在哪里: 我正在定义一个协议,该协议包含我希望包含在 .dylib 中的类的方法,然后定义一个接口,该接口是实现上述协议的 NSObject 的子类和在这里声明 ivars。
几个问题:
我是否可以省略协议中我不希望“导出”到 dylib 的方法?
如果我在 dylib 中有一个类的子类,我是否为子类创建另一个协议,并让新创建的类的超类实现该协议?例如,如果我是 person 的子类:
@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 之前我需要做的所有事情。
【问题讨论】:
标签: objective-c dylib dynamic-library