【发布时间】:2016-08-21 06:59:14
【问题描述】:
如果我说例如:
UIImageView *imageView;
imageView = [[UIImageView alloc] init];
NSLog(@"%@", imageView.class);
它将按预期记录UIImageView。
现在,如果我改用 UIImageView 的 .class 属性来分配对象(在第 0 行声明/定义为 UIImageView)的方式编写代码,它将记录 (null)
UIImageView *myImageView;
myImageView = [[myImageView.class alloc] init];
NSLog(@"%@", myImageView.class);//logs (null)
即使我在读取它的 .class 值时将对象硬转换为 UIImageView,当我稍后去记录所述类值时,我仍然会得到 (null)
UIImageView *myImageView;
myImageView = [[((UIImageView *)myImageView).class alloc] init];
NSLog(@"%@", myImageView.class);//logs (null)
【问题讨论】:
-
[[myImageView.class alloc] init]与[[nil alloc] init]相同,它什么都不做。 -
是的,我明白了。我的问题真的是,为什么它是
nil,即使我已经将它转换为UIImageView *
标签: ios objective-c uiimageview