我对id
Objective-C中的课程有疑问。我不知道为什么它适合任何课程,例如:
id objc = [[UIButton alloc] init];
我知道id
类是指向一个称为struct的指针objc_object
,但是代码的右侧返回实例的内存地址,该实例的大小与struct不同objc_object
。那么为什么可以这样做呢?
typedef struct objc_object *id;
内存地址大小相同。即使您使用UILabel * objc = [[UIButton alloc] init];
它也可以!使用KnownClassType的好处是,即使在运行应用程序之前,编译器(和IDE)也会将其强制转换并向您显示它的面。但是无法在运行时保证类型。id
只是AnyObject
类型,您应该自己进行类型转换。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句