2013-12-17 136 views
1

我試圖在那裏的接口聲明一個簡單的學術課程爲:目標C接口聲明

#import <objc/Object.h> 
@interface Saludador:Object{ 
char* saludo; 
} 
- init; 
- (void)setSaludo:(char*)unSaludo; 
- (void)setSaludo:(char*)unSaludo y:(char*)unaColetilla; 
- (void)saluda; 
@end 

當我嘗試編譯.m文件出現錯誤: 錯誤:無法找到接口聲明'對象',超級'Saludador'

我真的不知道爲什麼,我在mac OSX 10.9的終端窗口上編譯。

感謝您的幫助

+1

什麼是對象?你的意思是NSObject? objec/Object是否正確集成? – Larme

+0

import foundation或cocoa並使用NSObject,你不希望從Object級別開始,那只是運行時的東西 –

+0

你應該使用Xcode並從默認項目開始,然後你可以看到一個工作版本,也是您可以閱讀構建日誌並查看使用哪種編譯器選項。 –

回答

2

ObjectOBJC_ROOT_CLASS爲ObjC 1.0,爲ObjC 2.0使用NSObject#import <Foundation/Foundation.h>。如果要在命令行上使用clang或gcc進行編譯,則還必須將-framework Foundation作爲編譯器標誌添加。 見頭文件Object.h

#if __OBJC__ && !__OBJC2__ 

__OSX_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_NA) 
OBJC_ROOT_CLASS 
@interface Object 

注意#if __OBJC__ && !__OBJC2__

編輯: 我實際上設法發現:When writing code that is based upon the Foundation framework, that root class is typically NSObject一份古文獻中...該OBJC_ROOT_CLASS讓我感到困惑,因此,即使你使用ObjC 1.0它仍然NSObject

+0

NSObject始終是您爲根類指定的類。任何高於此的只是一個實現細節。 –

+2

沒有一個'OBJC_ROOT_CLASS'。 Object和NSObject都是根類。 NSProxy也是如此。 – Chuck

+0

看到這個:https://developer.apple.com/library/ios/documentation/general/conceptual/DevPedia-CocoaCore/RootClass.html –