在Obj-c中放置类别的好地方在哪里?

时间:2009-07-01 05:55:11

标签: iphone

我已经为NSString添加了一个类别。我已经尝试将代码放在我的appDelegate.h中,但它确实有效。但是,我已经尝试将它放在我从.pch文件中包含的另一个.h文件中,以便此类别可以在项目范围内使用。但是我一直收到以下错误:

ld: duplicate symbol .objc_category_name_NSString_StringTrim in ....AppDelegate.o and .....main.o
collect2: ld returned 1 exit status

奇怪的是,当我为模拟器而不是设备编译时,我只得到这个错误!有什么想法吗?

1 个答案:

答案 0 :(得分:4)

我始终在Foo+Category.hFoo+Category.m中声明类别,例如NSString+Hashing.hNSString+Hashing.m。在使用类别I的源中,然后导入Foo+Category.h,一切都有效。关于这个解决方案的好处是在使用它的代码中明确提到了类别,因此魔术很明显。