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
,这将导致多个定义(和链接器错误)。
我是 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
,这将导致多个定义(和链接器错误)。