You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Objective-C实例对象除isa指针外还存储哪些信息?

解答

Objective-C的实例对象除isa指针外,存储的内容分两种场景:

普通实例对象(非Tagged Pointer类型)

仅存储所有成员变量(ivar)的具体值:

  • 包含当前类自定义的、以及从父类继承来的所有成员变量的值,按编译期确定的内存布局顺序,紧接在isa指针之后存储
  • 举个例子:如果有一个继承自NSObject的Person类,声明了int _age、NSString *_name两个成员变量,64位架构下该类实例的内存布局为:前8字节是isa指针,接下来4字节存储_age的整数值,后续8字节存储_name指向的字符串对象的指针地址

注意:引用计数超过nonpointer isa存储上限时的额外引用计数、关联对象数据都存储在全局的SideTable哈希表中,不会占用实例本身的内存空间


Tagged Pointer类型实例

这类对象没有单独开辟堆内存,包括类型标识、数值/字符串内容、长度在内的所有信息,全部直接编码在指针地址本身中,没有额外的存储内容。

内容的提问来源于stack exchange,提问作者anb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:57:01