草庐IT

autoreleaseReturnValue

全部标签

ios - objc_autoreleaseReturnValue 是什么意思?

我有一个方法createATestObject。顾名思义,它创建一个对象并返回它。代码很简单,在ARC下。-(TestObj*)createATestObj{return[[TestObjalloc]init];}我汇编文件并得到下面的汇编代码。Lfunc_begin4:.cfi_startproc@BB#0:push{r7,lr}movr7,spsubsp,#8@DEBUG_VALUE:-[ViewControllercreateATestObj]:self我注意到函数_objc_autoreleaseReturnValue并从here获得了关于它的引用.但我不知道这是什么意思。任何

ios - 为什么 ARC 的 objc_autoreleaseReturnValue 的实现对于 x86_64 和 ARM 不同?

阅读MikeAsh的精彩博文后"FridayQ&A2014-05-09:WhenanAutoreleaseIsn't"在ARC上,我决定检查ARC为加速保留/释放过程而应用的优化细节。我所指的技巧称为“快速自动释放”,其中调用者和被调用者合作将返回的对象排除在自动释放池之外。这在以下情况下效果最好:-(id)myMethod{idobj=[MYClassnew];return[objautorelease];}-(void)mainMethod{obj=[[selfmyMethod]retain];//Dosomethingwithobj[objrelease];}可以通过完全跳过自动