我已经向 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
奇怪的是,我只在为模拟器而不是设备编译时收到此错误!有什么想法吗?
最佳答案
我总是在 Foo+Category.h
和 Foo+Category.m
中声明类别,例如 NSString+Hashing.h
和 NSString+Hashing.m
。然后,在使用类别的源代码中,我导入 Foo+Category.h ,一切都奇迹般地发生。这个解决方案的好处是,在使用它的代码中明确提到了该类别,因此其魔力是显而易见的。
关于iphone - Obj-c 中放置 Category 的好地方在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067481/