分类和;可可中的单身人士

时间:2011-01-04 09:37:37

标签: cocoa xcode singleton categories

我有一个SingletonClass,它只有一个实例。我想扩展它并添加一个类别(MoreFeatures)。

我创建了一个源SingletonClass + MoreFeatures,其接口/实现如下:

@interface SingletonClass (MoreFeatures)

- (void) feature;

@end

@implementation SingletonClass (MoreFeatures)
- (void) feature
{
}
@end

当我创建我的SingletonClass时,我遵循了Apple在cocoa中实现Singleton实现的例子。

这个单例位于项目B中,它是较大项目A的依赖项。 我可以从项目A中的源代码调用[[SingletonClass sharedInstance] foo],它可以在函数foo位于SingletonClass接口/实现中的情况下工作。当我尝试从项目A中的源代码调用[[SingletonClass sharedInstance] feature]时,我遇到了崩溃,它表示类SingletonClass没有方法功能......

为什么会这样?

非常感谢,

纳瓦

编辑:崩溃发生在运行时。类别文件源与SingletonClass

一起驻留在项目B中

2 个答案:

答案 0 :(得分:0)

听起来你的类别实现在构建项目A时没有被编译。这种事情肯定是可能的,Foundation / AppKit / UIKit大量使用类别来分割多个文件中的大类。

您没有说清楚项目B如何包含在项目A中。如果它是框架,共享或静态库,那么请确保您的类别文件包含在项目B“编译源”构建阶段中。如果它作为源包含,请确保将该文件编译为项目A build的一部分。

答案 1 :(得分:0)

您需要为项目指定-all_load和-ObjC链接器标志。

希望这有帮助, Moszi