2009-07-01 62 views
2

我已经添加到NSString的类别。我试图把代码放在我的appDelegate.h中,它可以工作。不过,我已经尝试将它放在另一个.h文件中,该文件包含在.pch文件中,以便此类别可用于项目范围。但是我一直得到以下错误:哪里是一个放置Obj-c类别的好地方?

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

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

回答

4

我总是在Foo+Category.hFoo+Category.m中声明类别,例如NSString+Hashing.hNSString+Hashing.m。在使用类别I的源中,然后导入Foo+Category.h,并且所有内容都可以工作。这个解决方案的好处在于,在使用它的代码中明确地提到了类别,这样就可以看出魔法。

+0

我通常去“FooAdditions.h”但我喜欢你的方式。考虑我转换。 – 2009-07-01 17:34:12

相关问题