У меня есть кусок кода & Я хочу понять возможность утечки памяти в этом. Я просмотрел документацию Apple here!Утечка памяти в нижнем простом коде
Здесь обрабатывается массив из параметра &, который хранит словарь во временном массиве.
+ (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 array]; – karthika
Включен ли ARC в ваш проект? Показывает ли статический анализатор какие-либо предупреждения? У прибора утечки есть какие-либо утечки? –
Да, анализатор профилей отображается для строки NSMutableArray * returnArray = [[NSMutableArray alloc] init]; «Метод возвращает объект Objective-C с сохранением числа +1» и [SharedApp sharedUserData] .linkedProfiles = returnArray; Объект просочился: объект, выделенный и сохраненный в 'returnArray', не упоминается позже в этом пути выполнения и имеет значение сохранения +1 –