当使用ARC编译时,方法参数通常在方法开始时被保留,在方法结束时释放。这种保留/释放对似乎是多余的,并与ARC“生成你本来会编写的代码”的想法相矛盾。在那些黑暗的、ARC之前的日子里,没有人对所有的方法参数执行额外的保留/释放,只是为了安全起见,不是吗?NSString *)s [s length]; // no extra ret
= Foo()的实例,并且在另一个线程上调用一些耗时的实例方法bar of Foo,过了很短的时间,我们在主线程上将foo设置为nil。对于bar的执行,我的理解是,bar仍然应该继续它的执行,因为调用实例方法隐式地传递self作为第一个参数,所以即使最后一个显式引用到foo的引用也被破坏了,我们在方法中仍然有一个引用,应该是好的。那么,有人能确认/否认在对象的方法执行过程中不能释放对象这个事实吗?