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]
太棒了!有效!谢啦!那么,背后的原因是什么.c没有工作,但.m工作! – azamsharp 2011-04-04 21:37:00
原因很简单:C和Objective-C不是同一种语言。将代码编译为C意味着编译器无法理解诸如类的Objective-C特性。 – 2011-04-04 21:38:22
GCC或任何你使用的编译器会让你知道你在你的文件中使用了什么语言。如果它具有后缀.c,则它假定C代替Objective-C。然而,你可以用编译器标志覆盖。然而,在你的情况下,我没有看到任何理由不使用后缀.m。 – 2011-04-04 21:39:51