Ios 自动释放的NSArray会导致内存泄漏吗?

Ios 自动释放的NSArray会导致内存泄漏吗?,ios,nsarray,retain,autorelease,Ios,Nsarray,Retain,Autorelease,我正在尝试使用arrayWithArray创建NSMutableArray,添加两个对象,排序,并将其作为NSArray存储到ivar中。我的代码如下所示: NSMutableArray *_mutableItems = [NSMutableArray arrayWithArray:[self.mainViewController.someDictionary allKeys]]; [_mutableItems addObject:@"Buildings"]; [_mutableItems a

我正在尝试使用arrayWithArray创建NSMutableArray,添加两个对象,排序,并将其作为NSArray存储到ivar中。我的代码如下所示:

NSMutableArray *_mutableItems = [NSMutableArray arrayWithArray:[self.mainViewController.someDictionary allKeys]];

[_mutableItems addObject:@"Buildings"];
[_mutableItems addObject:@"Parking"];

self.curItems = [_mutableItems sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

当我配置应用程序时,在弹出视图后,我会得到一个NSArray的内存泄漏。但我不明白的是:不是所有这些对象都自动释放了?将保留计数分配给实例属性时是否增加了保留计数?

是的,设置该属性可能会增加保留计数。具体来说,
\u mutableItems
将自动删除,但您使用
sortedArrayUsingSelector
创建的数组将由属性保留

您的财产声明是否包括
保留
复制

@property (retain) NSArray *curItems;
如果是这样,在类
dealloc
方法中,确保在数组上调用
release

- (void)dealloc {
    [curItems release];
    [super dealloc];
}
可能重复: