Iphone 内存泄漏在下面的简单代码中

Iphone 内存泄漏在下面的简单代码中,iphone,objective-c,memory-management,memory-leaks,automatic-ref-counting,Iphone,Objective C,Memory Management,Memory Leaks,Automatic Ref Counting,我有一段代码&我想了解这段代码中内存泄漏的可能性。我已经看过苹果的文档了 这里的代码处理参数中的数组&将字典存储到临时数组中 + (void)setLinkedProfiles:(NSArray *)profileData { NSMutableArray *returnArray = [[NSMutableArray alloc]init]; if([profileData count] > 0) { for(NSDictionary *dict in p

我有一段代码&我想了解这段代码中内存泄漏的可能性。我已经看过苹果的文档了

这里的代码处理参数中的数组&将字典存储到临时数组中

+ (void)setLinkedProfiles:(NSArray *)profileData {
    NSMutableArray *returnArray = [[NSMutableArray alloc]init];
    if([profileData count] > 0) {
        for(NSDictionary *dict in profileData) {

            NSDictionary *tempDict = @{
                                   @"verifiedEmail" : ([[dict objectForKey:@"verifiedEmail"] isKindOfClass:[NSNull class]]) ? @"": [dict objectForKey:@"verifiedEmail"],
                                   @"identifier" : [dict objectForKey:@"identifier"],
                                   };
            [returnArray addObject:tempDict];
        }
    }
    [SharedApp sharedUserData].linkedProfiles = returnArray;
}
我怀疑代码行
SharedApp sharedUserData].linkedProfiles=returnArray
可能会造成内存泄漏。 我想了解为什么&在哪种情况下? 有人能帮我理解这一点吗

感谢您阅读并理解我的问题。

要澄清问题:

你的线路

NSMutableArray *returnArray = [[NSMutableArray alloc]init];
为您提供该阵列的所有权。你有责任在完成后发布它

所以加上

[returnArray release];
就像最后一行一样。您可以使用
autorelease
,甚至可以从一开始就使用autorelease数组,即

NSMutableArray *returnArray = [NSMutableArray array];
linkedProfiles
应该是一个强引用(即
strong
copy


尽管我强烈建议切换到ARC,但对底层内存管理的理解可能很有用。

您可以这样声明数组,NSMutableArray*returnArray=[NSMutableArray];项目中是否启用了ARC?静态分析器是否显示任何警告?泄漏仪器是否显示任何泄漏?是的,配置文件分析器显示行NSMUTABLEARRY*returnArray=[[NSMUTABLEARRY alloc]init];“方法返回具有+1保留计数的Objective-C对象”和[SharedApp sharedUserData]。linkedProfiles=returnArray;对象泄漏:分配并存储到“returnArray”中的对象稍后不会在此执行路径中引用,并且保留计数为+1@robmayoff这里是我所看到的,我正在分享。剖面分析仪的屏幕