如何归零在非ARC弱引用?(How to zeroing weak references under

2019-09-17 12:57发布

我不喜欢ARC。

但ARC的最重要的特征,归零弱引用,是在非ARC失踪。 目前我使用MAZeroingWeakRef ,它的工作原理,但哈克,有时使代码冗余。 任何其他方式调零弱引用?

Answer 1:

实现零弱引用并不难。 所有您需要做的仅仅是追踪所有引用指针-它们存储在集合中-和分配NULL指向对象被释放的时候。 无论如何,如果用手工所有这些事情真的很多工作,你从字面上需要写全手动跟踪代码是在Objective-C的效率不够高。

而在最后,你会发现最终你需要一些自动代码编写机 - 静态编译 - 这ARC做什么。 您可以实现类似ARC自己。 但如果我是你,我会只使用现有的,强大的,稳定的,精心设计和实施支持通过编译器的维护者。

另外,如果你想开发苹果的东西不继苹果是不明智的行为。 不像其他的平台持有者 - 比如微软 - 苹果不会在意保持向后兼容性。 如果他们不觉得有什么好,那将被弃用并最终删除 - 像Objective-C的GC。



Answer 2:

我想你应该坚持范式苹果本身推荐的ARC引入之前,也就是零-ING所有的“弱”引用从内-dealloc方法。 它不仅是一个事实上的标准,但它也没有启用ARC时Xcode的代码重构的行为方式,所以符合它应该为你节省一对夫妇头疼的问题。



文章来源: How to zeroing weak references under non-ARC?