alloc 和allocwithzone的区别 参考

    技术2022-05-20  50

     

    今天读cocoa design patterns 引发的问题 alloc和allocwithzone的存在解决了很多问题,但是还是很疑惑。(随便说句 此书中文版翻译不靠谱。。。)

    下面是截自http://stackoverflow.com/的一段分析,虽然还没有体会,但是还是保留下来。

    When one object creates another, it’s sometimes a good idea to make sure they’re both allocated from the same region of memory. The zone method (declared in the NSObject protocol) can be used for this purpose; it returns the zone where the receiver is located.

    This suggests to me that your ivars, and any objects your classes "create" themselves could make use of+allocWithZone: in this way, to make the instances they create in the same zone.

    -(id)init {  if (self = [super init]) {    someIvar = [[SomeOtherClass allocWithZone:[self zone]] init];  }  return self;}

     


    最新回复(0)