Object-C 链接器命令失败,退出代码为 1

Object-C Linker command failed with exit code 1

我是 Object-C 编程的新手,并且得到了一项任务。构建时,由于重复的符号,构建失败并出现链接器错误。我做了我自己的分析似乎它坏了,因为在 class 文件之一中我们有这个:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return kCellHeight;
}

在另一个 class 中我们有这个:

self.contentView.frame = CGRectMake(5,5,[[UIScreen mainScreen] applicationFrame].size.width-10,kCellHeight - 5);

其中 kCellHeight 已在接口中定义为:

NSInteger const kCellHeight = 100;

这样的分析正确吗?

开发环境:

XCode:7.3.1 目标 SDK:7.1

提前致谢.. -S

也许(尽管如果你给出了编译器错误会更容易判断)。我假设当您说“kCellHeight 已在接口中定义”时,您的意思是在头文件中?常量应该在头文件中声明,但在实现文件中定义。像这样:

/* in .h file */
extern const NSInteger kCellHeight;

/* in .m file */
const NSInteger kCellHeight = 100;

如果在头文件中定义,则每次导入该头文件时都会定义 kCellHeight,这将导致多个定义(和链接器错误)。