2012-02-21 125 views
0

我有一个名为PrimeNumber的类,我最近编写了这个类,它在基础工具和Mac应用程序中工作得非常好。但是,尝试在iPhone应用程序中使用它失败。我加入的.m和.h文件到我的项目,进口这样.h文件到我的ViewController.h:添加类时出现错误消息

#import "PrimeNumber.h" 

试图用我的PrimeNumber类中声明的方法和运行我的应用程序后, Xcode向我展示了两个错误:

Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_PrimeNumber", referenced from: 
objc-class-ref in ViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

PrimeNumber.h和PrimeNumber.m文件在项目导航器中不是红色。产品>清洁也不起作用。另外,因为我的类没有在框架中声明,所以我认为这不是问题。

谁能告诉我我做错了什么?谢谢!

编辑:将类名更改为PrimeNumbers,然后创建一个名为PrimeNumber的新Objective-C类,并将PrimeNumbers类的.h和.m文件的完整内容复制粘贴到.h和.m中PrimeNumber类的文件为我工作。奇怪的,但它的工作。 :)

+0

PrimeNumber.h'是否也导入'ViewController.h'? – fscheidl 2012-02-21 16:53:35

+0

不,它没有。 – 2012-02-21 17:43:10

+1

重命名和复制和粘贴工作,因为当你通过Xcode添加一个新类时,它会自动将它添加到编译源构建阶段。当你将源文件拖放到你的项目中时,不会这样做。 – 2012-02-21 17:47:51

回答

1

您还必须将其添加到“编译源”构建阶段。 项目 - >目标 - > [你的目标] - >构建阶段 - >编译源(只需拖动PrimeNumber.m

+0

谢谢,解释! – 2012-02-21 20:36:01