我有一个名为Profile的非常简单的类。它包含名为avatar的NSMutableArray,后者又包含UIImages。此NSMutableArray声明为非原子,retain属性。它在Profile的init方法中分配如下:
avatar = [[NSMutableArray alloc] initWithObjects:
[UIImage imageNamed:@"image1.png"],
[UIImage imageNamed:@"image2.png"],
[UIImage imageNamed:@"image3.png"],
[UIImage imageNamed:@"image4.png"],
[UIImage imageNamed:@"image5.png"],nil] ;
并在Profile的dealloc方法中发布。
在我的AppDelegate中,我有一个名为currentProfile的全局Profile对象。它用于各种文件。一旦我需要释放这个对象的头像数组,以便用另一个数组复制它。但复制永远不会完成,因为我在释放阵列时遇到了运行时错误。当我分析代码时,我得到以下内容:
属性返回一个具有+ 0保留计数(非拥有引用)的Objective-с对象
调用者此时未拥有的对象的引用计数的错误减少
怎么了?为什么我不能发布阵列?只因为它是一个班级的成员?如果是这样,我如何用新的内容替换数组的内容?
答案 0 :(得分:1)