2

我有一个 NSDictionary。它包含几个对象,包括一个子 NSDictionaries 数组,每个子对象都有一个对象,作为@"Parent"指向父 NSDictionary 的那个点。

这个循环引用破坏了使用经典调用检查对象的能力,例如:

NSLog(@"%@", [myDictionary description]);

有人会推荐一种检查对象的解决方法吗?

4

1 回答 1

2

您能否在类别中创建自己的描述方法NSDictionary并手动打印出内容,而不是依赖字典的描述方法?

这里可能存在更大的问题,因为字典保留了它们的内容。如果您将对象添加到字典,它会被保留,然后如果您将包含字典添加到“子”字典,它会保留其父级。这可能会导致保留周期,并可能阻止任何对象被释放。

来自 Aaron Hillegass 的“Mac OS X 的 Cocoa 编程”:

如果对象 X 保留对象 Y,而 Y 保留 X,则永远不会释放对象。这种情况称为保留周期。保留周期可能会在应用程序的内存空间中堆积大量垃圾。

于 2010-08-03T23:33:22.770 回答