我有一个问题,我需要找出哪些对象保留了NSMutableArray。如果它是我创建的对象,我可以覆盖retain和release并在其上设置断点,但由于它是NSMutableArray,我不能。我试图继承NSMutableArray,但是当我尝试添加到我的子类时,我得到了异常。有什么想法吗?
我知道您不应该真正关注保留计数,但这是我继承的复杂代码,并且不知道哪些对象保留它。
答案 0 :(得分:0)
子类化绝对是你最好的镜头,但是对类集群进行子类化并不容易。您的异常可能是“仅为抽象类定义的blablabl”之一。
如果你想这样做,你可以在自定义类中嵌入一个NSMutableArray实例,并将你实际对NSMutableArray进行的每个调用转发给嵌入式实例。
然而,尊重内存管理的简单规则(read apple's doc here)应该让你摆脱困境。确保释放数组的每个拥有实例。拥有的实例是使用名称以“alloc”或“new”开头或包含“copy”的方法获得的实例。
在分配基于对象的属性时,请确保始终使用属性访问器(self.myProperty = ...而不是myPorperty = ...)。