一个可能的考试问题如下:
"与c ++"
相比,解释Objective C内存管理的好处和缺点我知道Objective C使用ARC,而ARC使我们能够避免破坏仍然被其他东西引用的对象(意思是,它仍然需要)。但我无论如何都找不到任何弊端。我只能想到"没有缺点"作为答案,但由于问题明确要求弊端,我猜测必须至少有一个。
答案 0 :(得分:2)
引用计数可以解决您没有的问题。这是有代价的,无论你是否想要解决方案,你最终都会付出代价。
与直觉可能会说的相反,大多数对象实际上根本不需要共享,并且在其整个生命中具有明确定义的唯一所有权。所需要的就是能够传递这些物体;引用计数提供了这一点,但它提供了更多,并且成本更高。
(这个答案将目标C中的引用计数与C ++风格的生命周期管理进行比较。它没有考虑Obj-C中的引用计数是否合理.ARC只是一种自动形式的MRC,如果你是过去使用MRC是有意义的,那么是否迁移到ARC的问题不是这篇文章的重点。相反,这篇文章同样适用于“Obj-C与C ++中的MRC”的比较。)
答案 1 :(得分:0)
引用计数'释放'你总是在考虑何时删除一个对象。使用该对象的任何人只是说,我仍然需要它(想要保留它)或者我完成它(我发布它)
使内存管理更容易,也使代码更易于管理 但 每当你传递东西时,它需要另外2个方法调用的代价:你必须保留对象,然后保存指针,然后再调用它。
当你处理很多成为现实生活问题的物品时。只是额外的调用会杀死你的算法性能
特别是如果你不需要任何引用计数,因为使用对象的范围很明显,开销很烦人。
所以它方便+ 可维护性与速度