Iphone 需要找出谁在保留NSMutableArray
我遇到了一个问题,需要找出哪些对象保留了NSMutableArray。如果它是我创建的对象,我可以覆盖retain和release并在其上设置断点,但由于它是一个NSMutableArray,所以我不能。我尝试将NSMutableArray子类化,但当我尝试将其添加到子类时,会出现异常。有什么想法吗Iphone 需要找出谁在保留NSMutableArray,iphone,Iphone,我遇到了一个问题,需要找出哪些对象保留了NSMutableArray。如果它是我创建的对象,我可以覆盖retain和release并在其上设置断点,但由于它是一个NSMutableArray,所以我不能。我尝试将NSMutableArray子类化,但当我尝试将其添加到子类时,会出现异常。有什么想法吗 我知道您不应该真正关注保留计数,但这是我继承的复杂代码,不知道哪些对象在保留它 子类化无疑是您的最佳选择,但子类化类集群并不容易。您的异常可能是“仅为抽象类定义的blabl”之一 如果您想这样做,可
我知道您不应该真正关注保留计数,但这是我继承的复杂代码,不知道哪些对象在保留它 子类化无疑是您的最佳选择,但子类化类集群并不容易。您的异常可能是“仅为抽象类定义的blabl”之一 如果您想这样做,可以将NSMutableArray的实例嵌入到自定义类中,并将实际对NSMutableArray的每个调用转发到嵌入实例 但是,遵守内存管理()的简单规则应该可以让您摆脱这种状况。确保释放阵列的每个拥有的实例。拥有的实例是使用名称以“alloc”或“new”开头或包含“copy”的方法获得的实例
确保在分配对象的基于属性(self.myProperty=…而不是myPorperty=…)时始终使用属性访问器。这是一个好主意,可以转发到另一个类。通过查看保存阵列的其他对象的保留计数,我解决了问题。不是那么直接,而是足够近。还要注意增加保留计数的原子getter。它们最终会被清除,但肯定会使保留计数分析变得更加困难,我同意在大多数情况下应该避免这种情况。