【问题标题】:Process of transitioning a project from a collection of classes to a .dylib?将项目从类集合转换为 .dylib 的过程?
【发布时间】: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


    【解决方案1】:

    Project->New Target…在你得到的面板中选择“dylib”。使其成为当前目标。控制并单击组和文件 tableview 标题,检查“目标成员资格”。选中要包含在 dylib 中的文件旁边的框。

    【讨论】:

    • 这样可以避免为每个接口添加协议吗?
    猜你喜欢
    • 1970-01-01
    • 2016-08-29
    • 2010-10-03
    • 2014-01-05
    • 2021-01-11
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多