作者yllan (藍永倫)
看板MacDev
標題Re: [問題] 怎樣才能使用Objective-C 2.0呢?
時間Thu Nov 1 09:56:09 2007
※ 引述《Devon22 ()》之銘言:
: 最近更新Leopard後也把XCode 3.0裝了上去
: 不過對於這次新增的Objective-C 2.0該怎麼使用卻毫無頭緒..
: 有沒有大大能分享這方面的資訊呢?
: 另外再請教一個問題
: 不曉得我有沒有理解錯誤?
: Objective-C 2.0 只要配合10.4的SDK還是可以寫出10.4可以跑的程式嗎?
: 應該不會有只能相容於10.5的情況吧?
就是會喔~很多 feature 用了以後就是 Leopard only 了。
objc-2.0 官方文件:
http://tinyurl.com/yw3t
Garbage Collection:
不用再寫 release / autorelease 了...
Property:
支援 dot syntax, my.money = 100 ,自動 accessor 生成,而且是 atomic 的:
@interface Human : NSObject {
int _money;
}
@property(readwrite) int money;
@end
@implementation Human
@synthesize money=_money;
@end
這邊語法實在太雜了,請參考上面的文件
Fast Enumeration:
for (NSString *s in arrays) {}
速度很快!
Formal Protocol:
現在有 @require 和 @optional 兩個關鍵字
Category:
現在有 anonymous category (private).
@interface ClassName ()
更好的安全機制
可限制直接取用 ivar
try/catch block
@try {} @catch () {}
有的沒的還蠻多的...
現在我仍然堅守 objc-1.0 ,沒辦法,因為要 target 10.4
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.31.3
1F:推 Blueshiva:所以在10.5上也可以純用Obj-C 1.0來寫相容於10.4的程式? 11/01 11:28
2F:推 yllan:可,不過之前 OV team 那邊的經驗是可能會出一點狀況 11/01 12:12
3F:→ yllan:也許是那時 leopard 還在 beta 的關係... 11/01 12:13
4F:推 Devon22:那麼原來的10.4程式要改用10.5 SDK才能使用obj-c 2.0囉? 11/01 15:51
5F:推 yllan:是啊,ObjC-2.0 只能在 leopard 上 run, 當然用 10.5 sdk 11/03 09:24
6F:推 jclin:實在很沒道理...就好像說 GCC4 不能用在 RH9 一樣 11/06 15:58
7F:→ jclin:不過主要還是apple不釋放出那些 obj-c 2.0 lib 11/06 15:59
8F:推 Blueshiva:感覺這次10.5核心改了很多東西,向前相容性出了不少問題 11/06 21:19