作者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)