我已经为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
奇怪的是,当我为模拟器而不是设备编译时,我只得到这个错误!有什么想法吗?
答案 0 :(得分:4)
我始终在Foo+Category.h
和Foo+Category.m
中声明类别,例如NSString+Hashing.h
和NSString+Hashing.m
。在使用类别I的源中,然后导入Foo+Category.h
,一切都有效。关于这个解决方案的好处是在使用它的代码中明确提到了类别,因此魔术很明显。