msm*_*lko 17 casting class objective-c
我知道可以定义响应给定协议的Class属性,例如:
Class <MyProtocol> class = [object class];
Run Code Online (Sandbox Code Playgroud)
但是在Objective-C中是否有任何方法可以将Class类型转换为我的类?
Class unknownClass = [object class];
[((MyClass)unknownClass) myMethod]; // How can I cast Class to MyClass?
Run Code Online (Sandbox Code Playgroud)
你问的问题没有任何意义.
unknownClass指向一个类对象.Class只是一种类型,可以保存任何指向类对象的指针.通过向类对象发送消息来调用类方法.
Class,比如id,关闭静态类型检查.这意味着编译器不会抱怨该对象可能不响应该方法.所以你应该只是给它发一条消息."铸造"没有任何意义.如果你得到错误,没有接口声明这个方法,那么你得到一个与类型无关的完全不相关的问题; 相反,该方法未在任何可见标头中声明.
你在评论中说另一个答案是"我知道'unknownClass'实际上是MyClass类型." 这使你的问题更有意义 - 为什么不直接使用MyClass呢?而不是unknownClass?喜欢[MyClass myMethod];
Her*_*ker -2
obj->isa = [NewClass class];
Run Code Online (Sandbox Code Playgroud)
这应该改变对象的类。
这样做时,我相信您知道自己在做什么。
| 归档时间: |
|
| 查看次数: |
5119 次 |
| 最近记录: |