[iOS]深入理解ivar及property

  1. 云栖社区>
  2. 博客>
  3. 正文

[iOS]深入理解ivar及property

知兵 2016-08-08 11:08:06 浏览3611
展开阅读全文

以下所有类和对象的描述均以Objective-C为参考, cpu架构为arm64

0x0 一句话描述类和对象与内存的关系

  • 类本身是一个描述, 描述里包含实例化这个类需要多大的内存, 以及内存的每个byte什么内容, 这个内容的头部是一个isa, 其他内容是ivar的值或指针.
  • 对象是按类的描述所从内存空间里面开辟出对应大小的空间并填充isa指针(alloc), 类的初始化方法往这个空间里的byte里面存初始化的内容.

0x1 ivar

举个例子:

@interface AClass : NSObject
{
    NSString *_aString;
    NSInteger _aInt;
}
@end

@implementation AClass
- (instancetype)init
{
    if (self = [sup

网友评论

登录后评论
0/500
评论
知兵
+ 关注