作者leondemon (狗狗)
看板MacDev
標題[問題] 類別變數
時間Sun May 30 01:11:55 2010
當需要一個物件有一個變數是一個類別的時候 要怎麼宣告?
如果只是宣告Class aClassObject;
則aClassObject可以設定為任何類別物件
但是我今天希望限制aClassObject是某組類別 (將會使用到多型)
例如 我希望aClassObject是任何繼承UIView的類別物件
這樣我可以動態決定要對哪個class object送message....
這有辦法做到嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.77.52.127
1F:推 Blueshiva:UIView *aView; 05/30 01:15
這個要怎麼宣告呢?
UIView *aViewClass = UIView; 似乎不行
2F:→ uranusjr:NSObject 有個 class method 叫 isSubclassOfClass: 05/30 02:08
希望能有compile時就可以檢查的功能
3F:→ Maiyo:(id) 可承接所有類型的變數 05/30 11:00
能否可以限定這個類別物件的類別?
目前想到的解法是...
用id <UniqueProtocolName> aClassObject;來宣告
並且目標類別會confirm這個protocol (包含其subclasses)
這樣該我就可以限定一個類別物件是某群類別
但缺點是aClassObject應該也可以是instance object
不知道有沒有更好的方法?
※ 編輯: leondemon 來自: 114.136.120.154 (05/30 19:12)