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