2011-04-04 72 views
2

我在我的Xcode命令行工具项目中添加了一个简单的类。只要我在主文件中使用#import "Foo.h"我得到的所有类型的错误引用foo.h中Xcode的Objective-C错误

#import <Foundation/Foundation.h> 

@interface Foo : NSObject { 
} 
@end 

#import "Foo.h" 

@implementation Foo 
@end 

:类如下所示。我将Foundation.frameowork添加为我的框架。

 
/Developer/SDKs/MacOSX10.6.sdk/System/ 
    Library/Frameworks/Foundation.framework/Headers/ 
NSObjCRuntime.h:189:1: error: expected identifier or '(' [3] 

/Developer/SDKs/MacOSX10.6.sdk/System/ 
    Library/Frameworks/Foundation.framework/Headers/ 
NSObjCRuntime.h:197:50: error: unknown type name 'Protocol' [3] 

回答

8

我猜你可能需要重命名main.cmain.m?否则,你可以发布你的主文件的内容吗?

+0

太棒了!有效!谢啦!那么,背后的原因是什么.c没有工作,但.m工作! – azamsharp 2011-04-04 21:37:00

+2

原因很简单:C和Objective-C不是同一种语言。将代码编译为C意味着编译器无法理解诸如类的Objective-C特性。 – 2011-04-04 21:38:22

+0

GCC或任何你使用的编译器会让你知道你在你的文件中使用了什么语言。如果它具有后缀.c,则它假定C代替Objective-C。然而,你可以用编译器标志覆盖。然而,在你的情况下,我没有看到任何理由不使用后缀.m。 – 2011-04-04 21:39:51