Objective-c中的id类,为什么它适合任何类?

凯维斯

我对idObjective-C中的课程有疑问我不知道为什么它适合任何课程,例如:

id objc = [[UIButton alloc] init]; 

我知道id类是指向一个称为struct的指针objc_object,但是代码的右侧返回实例的内存地址,该实例的大小与struct不同objc_object那么为什么可以这样做呢?

typedef struct objc_object *id;
莫伊塔巴·侯赛尼(Mojtaba Hosseini)

内存地址大小相同。即使您使用UILabel * objc = [[UIButton alloc] init];它也可以!使用KnownClassType的好处是,即使在运行应用程序之前,编译器(和IDE)也会将其强制转换并向您显示它的面但是无法在运行时保证类型。id只是AnyObject类型,您应该自己进行类型转换。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在Objective-C类中具有类型-(id)的initTESTING()无法在Swift中调用?

来自分类Dev

Objective-C类中的Swift协议

来自分类Dev

Swift 中的 Objective C 类方法调用

来自分类Dev

从Objective C中的Swift类继承

来自分类Dev

Interface Builder中的Objective C类类别

来自分类Dev

在Swift中重写Objective C类方法

来自分类Dev

Objective-C中的抽象方法/类?

来自分类Dev

为什么我的Objective C模块在Xcode 8中看不到我的Swift 3类?

来自分类Dev

在Objective-C中使用C ++类-为什么要使用PImpl习惯用法?

来自分类Java

为什么Objective-C使用头文件而不是Java这样的单文件类?

来自分类Dev

为什么我不能在子类中使用超类的属性(Objective-C)

来自分类Dev

什么是Objective C ++?

来自分类Dev

Swift-Objective-C加载类方法?

来自分类Dev

检查Objective-C块类

来自分类Dev

从Objective-C类调用Swift函数

来自分类Dev

Objective-C自定义类

来自分类Dev

在Objective-C中使用Swift类

来自分类Dev

类之间的Objective-C共享变量

来自分类Dev

从Swift设置Objective-C类的属性

来自分类Dev

从Objective-C调用Swift类方法

来自分类Dev

从Objective-C调用Swift类方法

来自分类Dev

如何实现Objective C类的块属性

来自分类Dev

Objective-C崩溃:从类创建对象

来自分类Dev

Objective-C-Swift类在Objective-C .h文件中不可见

来自分类Dev

在Swift中的运行时创建符合Objective-C协议的Objective-C类的对象

来自分类Dev

将Objective C自定义模型实例存储到swift类中以id实例

来自分类Dev

Objective C 中的“for in”协议

来自分类Dev

Objective-C中类扩展的正确文件命名约定是什么?

来自分类Dev

无法从Objective-C文件访问Swift类中的变量

Related 相关文章

热门标签

归档