【发布时间】:2017-12-23 02:55:02
【问题描述】:
当我们用Class调用alloc时,对象的引用计数是否为1。
例如:
NSObject *obj = [NSObject alloc];
这行代码执行后,对象的引用计数是0还是1?
我看了alloc源码,但是没有发现alloc方法会对对象的引用计数有什么作用,此时对象的引用计数还是0?
如果为0,则对象将被销毁,如果不为0,如何实现,
希望有人能帮我解答心中的疑惑,谢谢!
【问题讨论】:
-
你还在 ARC 之前吗? ARC 可以帮助你解决这个问题,但通常在你对一个对象执行 alloc 之后,它会得到一个引用 1。为了管理这个,如果你在 ARC 之前,你可以使用 autorelease 或 dealloc 再次给对象 0。跨度>
-
感谢优化我的格式,我最近在看源码的时候这么一头雾水,不知道在“alloc”中,对象的引用计数是1,因为我没有找到这个问题的有效确认码
-
这是我朋友发的文章,我也看了,但还是没能解决我心中的困惑
-
@Rushtoasktheway 实施细节;对象的保留计数存储在对象的
isa中。在分配时,isa被初始化为包含对类的引用、保留计数 1 和一些其他元数据。除非该类实现客户保留/释放。所有这些都是实现细节,虽然有趣,但保留计数对于调试或开发目的完全没有用。
标签: ios objective-c memory-management alloc retaincount