我目前正在学习Objective-C,并通过一本包含大量练习的书来学习。在本书的开头,我设置了一个OS X项目命令行项目,并且一直在main.m
文件中工作,阻止评论之前的练习,但是在这么长的文件中工作变得很烦人,不断评论和解决评论我想要构建的练习代码。我想在导航器中为每个练习创建单独的文件,以便于查找。如何在不导致Products文件夹中的文件出现问题的情况下执行此操作?
当我在添加新的.m
文件后尝试构建时,我正在收到此红色警报:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
答案 0 :(得分:0)
Objective-C,C和C ++程序必须恰好包含main()的一个定义。
我希望你可以这样做:
int main( int argc, char *argv[] )
{
printf( "Solution to exercise #%d\n", getExerciseNumber() );
mySolution();
return 0;
}
您可以在每个Xcode项目中重复使用此文件进行练习。或者,您可以只有一个包含多个目标的项目,每个项目一个。
这有帮助吗?我并不完全清楚我理解你的问题。
答案 1 :(得分:0)
向我的Xcode项目添加多个文件看起来超出了我目前的能力。我会尝试在以后对项目进行破解,当时我对Objective-C和Xcode更有信心。感谢您的意见和帮助。
答案 2 :(得分:0)
这可能不是问题的直接答案(多个文件...)和一种有点非正统的方法,但它是一种有趣且方便的方法,通过利用单元测试来实现您描述的内容。
我知道您刚开始学习语言和工具,所以我会尽可能简单。让我们开始吧!
您只需在导航器中选择项目,然后按下'目标'下的 + 按钮。添加新的。
选择OS X>其他> Cocoa Testing Bundle并点击“下一步”
添加产品名称(例如'练习'在您的情况下会有意义),然后点击“完成”
现在,你应该能够在列表中看到你的新目标
在'运行'上点击并按住按钮,选择'测试'从弹出菜单
现在Xcode会询问您是否要配置项目进行测试。点击“编辑方案...”
选择'测试'从左侧单击 + 按钮
选择我们在上一步中创建的测试目标,然后点击“关闭”
现在,如果您单击“测试导航器”'您会看到您的测试列表(您的练习')。添加测试就像添加以test
开头的方法一样简单 - 例如-(void)test_Exercise_x
。
此外,您现在可以通过点击中的图标来验证您对每个练习的答案是by using assertions 和自行选择性地运行测试(练习)。每个测试的左侧(屏幕截图中的圆圈)或者当然,所有这些都通过点击“测试”来测试。按钮或选择产品>从菜单中进行测试