我应该释放从[NSMutableDictionary ValueForKey:]返回的数组

prd*_*prd 2 iphone nsmutabledictionary

我有一个NSMutableDictionary,键是对象名称的第一个字母.该视图类似于iphone上的"联系人"选项卡.此外,用户可以选择列表中的单个对象.

在代码中,我找到每个选定的对象以进一步处理它们.

NSMutableArray *objectsToAdd = [[NSMutableArray alloc] init];
NSMutableArray *array      = nil;

for (NSString *key in self.nameIndex) {

    array = (NSMutableArray *)[searchedNameDictionary valueForKey:key];    
    for (Objects *eachObject in array) {
        if (eachObject.objectIsSelected){
            [objectsToAdd addObject:eachObject];
        }
    }           
}
[array release];

-(void)dealloc()
{
    [searchedNameDictionary release];
}
Run Code Online (Sandbox Code Playgroud)

应用程序崩溃我释放的searchNameDictionary,其中包含正在引用释放对象的消息.

现在,如果在上面的代码中,我删除[数组发布]应用程序工作正常.

我的问题是发布'array'实际上是在searchNameDictionary中释放对象,这似乎正在发生.

不会释放数组导致内存泄漏?

Ben*_*n S 5

release除非来自alloccopy方法,否则不应返回对象.

autoreleased如果您希望retain在收到物品后立即将其保留在您周围,则返回物品.