2011-04-04 24 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