※ 引述《HuangJC (吹笛牧童)》之銘言:
: 現在我又碰到這狀況了:
: Object C 是種語言
: Xcode 是個產品(這種語言的 compiler)
語言叫 Objective-C
Xcode 不是 compiler 是 IDE
蘋果出的 Objective-C compiler 是 Clang 和 GNU GCC [1]
[1] 其實 Clang 和 GNU GCC 都不是蘋果出的, 只是這樣講比較快
前者是 LLVM project 的一部份, 雖然蘋果出了很多力不過不是掛他們的名
後者當然主要是 GNU 的東西, 蘋果只是自己加了 extension 推客制版
: 為什麼呢? 因為我買了本書,叫做 Object - C 無痛入門
: 裏面至少有兩點就踢中鐵板
: 1.@synthesize 保留字
: 書上說用這個取代 @property, 就可以連 get set 的本體程式都不用寫
不是取代是合用
: 但如果寫了,就以我們寫的為準;自動判斷,很方便
: 不過 Xcode 上我實測,打了 @synthesize 就 build fail
: 而 @property 就有自動補上 get set 本體的能力了 (其實這樣更好用)
那是新語法, 麻煩去爬文
: 2.書上說, Object C 的 class 可以沒有 base class,
: 並沒預設一定要從 NSObject 繼承起
: 實測上, Xcode 無法接受沒有 base class, 一定會 build fail
/* This totally works. */
#include <Foundation/Foundation.h>
NS_ROOT_CLASS
@interface Object
@end
@implementation Object
@end
int main(int argc, char **argv)
{
return 0;
}