看板 MacDev 關於我們 聯絡資訊
※ 引述《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; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.94.57
HuangJC:#1G_hQYio 找到了,謝謝 02/13 20:04
HuangJC:文中那段程式我原本一直 BUILD 不過,原來 NS_ROOT_CLASS 02/14 00:43
HuangJC:是關鍵; 這樣倒引出我另一個問題 02/14 00:43
HuangJC:我從網路上抓的 sample 常要忽略一些字,因為搞不懂作者是 02/14 00:44
HuangJC:在寫程式或寫註解,或他可以用,但我這兒有相容性問題 02/14 00:44
HuangJC:說起來我的學習很沒系統啊,一直在見招拆招.. 02/14 00:45