当前位置:首页 > 风云人物 > iOS中dealloc实现机制

iOS中dealloc实现机制

2024-04-03 02:34:41 来源:金风故事网
一、dealloc调用流程1、首先调用_objc_rootDealloc()2、然后调用rootDealloc()3、判断是否可以被释放,判断依据为,是否有以下5中情况:
(1)NONPointer_ISA
(2)weakly_reference
(3)has_assoc
(4)has_cxx_dtor
(5)has_sidetable_rc4、如果有以上5中情况中的任意一种,则调用object_dispose()方法;如果没有其中任意一种,表明可以执行释放操作,执行C函数的free()。5、执行完毕。二、object_dispose()调用流程1、调用objc_destructInstance()2、调用C函数的free()三、objc_destructInstance()调用流程1、判断has_cxx_dtor,如果有C++相关内容,要调用objc_cxxDestruct(),销毁C++相关内容。2、判断hasAssociatatedObjects,如果有,要调用objc_remove_associations(),销毁关联对象的一系列操作。3、调用clearDeallocating()。4、执行完毕。四、clearDeallocating()调用流程1、执行sideTable_clearDeallo(中文邮件格式:邮件的主题是为了让收件人看到邮件之后对该邮件有个大体了解,确定邮件的紧急、重要程度、有效、有用性的;所以在写主题的时候最主要的突出 什么事、重要程度等关键信息;可以按照以下方式和思路去写:格式:修饰词+邮件内容+时间+发件人。如果有必要的话还可以在主题上加上紧急程度和邮件的主体内容,清晰明了。)cating()。2、执行weak_clear_no_lock,在这一步骤中,会将指向该对象的弱引用指针置为nil。3、执行table.refcnts.eraser(),从引用计数表中擦除改对象的引用计数。4、至此,dealloc执行流程结束。
相关内容推荐
与文章关键字相关的新闻
风云人物最新文章
精华推荐
热门图文