[iOS]深入理解ivar及property
以下所有类和对象的描述均以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