我正在尝试为一个项目建立一个类别(我第一次)。如果我在模型 (LTUser) 中实现该类别,它工作正常,但是,如果我将其放入名为 LTUser+Additions(.h/.m) 的不同文件中,它会给出“链接器命令失败,退出代码 1(使用-v 查看调用)”错误,并显示“架构 i386 的 6 个重复符号”。我什至不确定在调用时在哪里添加 -v 。我已经包含了错误的屏幕截图。我的类别做错了什么?
LTUser+Additions.h
#import "LTUser.h"
@interface LTUser (Additions)
-(void)saySomethingMore;
+(void)tellMe;
@end
LTUser+Additions.m
#import "LTUser+Additions.h"
@implementation LTUser (Additions)
-(void)saySomethingMore{
NSLog(@"I want to say something more to you from within category");
}
+(void)tellMe
{
NSLog(@"I want you to tell me from the category");
}
@end
编辑#1 因此只需通过以下方式添加一个空类别:File -> New -> File -> 'select Objective C Category' -next-> Set name to Add and Category on LTUser
它生成 .h/.m 文件,但如果我编译它,它会给我同样的错误。这让我认为添加/删除类别文件已经搞砸了项目,但仍然不确定。
最佳答案
这看起来就像您在某处#import
.m 文件而不是 .h 文件。
如果将实现放入.h文件中也会出现同样的错误 (您永远不应该这样做),并从多个位置导入 .h 文件。
关于ios - 单独文件中的类别给了我 "linker command failed with exit code 1 (use -v to see invocation)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20225436/