Ios Alloc init保留?

Ios Alloc init保留?,ios,objective-c,memory-management,Ios,Objective C,Memory Management,有人能解释为什么这行代码的保留计数是: [[[SomeClass alloc] init] retain] 是两个吗?我只调用retain一次。因为alloc将retain计数加1。你应该阅读苹果的。保留计数是两个,因为[alloc]也会增加保留计数。严格地说,一个对象的保留计数不只是调用了多少次保留,而是保留了多少个对象。如果使用名称以alloc、new、copy或mutableCopy开头的方法创建一个对象,或者您保留一个对象,那么它的保留计数将增加1 如果release或autorel

有人能解释为什么这行代码的保留计数是:

[[[SomeClass alloc] init] retain] 

是两个吗?我只调用retain一次。

因为alloc将retain计数加1。你应该阅读苹果的。

保留计数是两个,因为
[alloc]
也会增加保留计数。严格地说,一个对象的保留计数不只是调用了多少次保留,而是保留了多少个对象。

如果使用名称以alloc、new、copy或mutableCopy开头的方法创建一个对象,或者您
保留一个对象,那么它的保留计数将增加1

如果
release
autorelease
对象,其保留计数将减少1

在示例代码中,
alloc
retain
都将retain计数增加1

有关更多详细信息,请参阅苹果的文档: