我有一个NSDictionary。它包含几个对象,包括一个子NSDictionaries数组,每个对象都有一个键入@"Parent"
的对象,指向父NSDictionary。
此循环引用打破了使用经典调用检查对象的能力,如:
NSLog(@"%@", [myDictionary description]);
有人会非常友好地推荐一种检查对象的解决方法吗?
答案 0 :(得分:2)
您可以在NSDictionary
的类别中创建自己的描述方法,并手动打印内容而不是依赖字典的描述方法吗?
这里可能存在更大的问题,因为字典保留了它们的内容。如果要将一个对象添加到字典中,它将被保留,然后如果您将包含的字典添加到“子”字典中,它将保留其父级。这可能会导致保留周期,并可能阻止任何对象被解除分配。
来自Aaron Hillegass的“Cocoa Programming for Mac OS X”:
如果对象X保留对象Y,并且Y保留X,则永远不会释放对象。这种情况称为保留周期。保留周期可以允许大型垃圾岛在应用程序的内存空间中累积。