gpt4 book ai didi

ios - 为什么必须先初始化NSObject的.class-property才能对其进行初始化

转载 作者:行者123 更新时间:2023-12-01 20:05:24 26 4
gpt4 key购买 nike

例如,如果我说:

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,因此.classnil返回给您。

UIImageView *myImageView;
myImageView = [[myImageView.class alloc] init]; // didn't initialize myImageView
NSLog(@"%@", myImageView.class);//logs (null)

所以如果你想做这样的事情:
myImageView = [[NSClassFromString(@"UIImage") alloc] init];

NSLog(@"%@", myImageView.class);//logs (UIImage)

关于ios - 为什么必须先初始化NSObject的.class-property才能对其进行初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39061642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com