gpt4 book ai didi

objective-c - 我的 Object C 常见内存泄漏

转载 作者:行者123 更新时间:2023-11-28 18:43:32 25 4
gpt4 key购买 nike

当我在 Instruments 中使用这段代码运行配置文件时,我得到了 35 个 Player 内存泄漏。我需要如何处理以避免内存泄漏?

NSMutableArray *players = [NSMutableArray array];
NSData *data = [theRequest responseData];
NSArray *array = (NSArray *) [decoder objectWithData:data];
int len = 35;
for (int i = 0; i < len; i++) {
NSDictionary *dic = (NSDictionary *) [array objectAtIndex:i];

Player *p = [[Player alloc] init];
p.playerID = [dic objectForKey:@"id"];
p.name = [dic objectForKey:@"name"];
p.country = [dic objectForKey:@"country"];
p.club = [dic objectForKey:@"club"];
p.imageURL = [dic objectForKey:@"image"];
p.likeNumber = [dic objectForKey:@"like_number"];
p.likeTime = [dic objectForKey:@"like_time"];
p.likePlayerID = [dic objectForKey:@"like_player_id"];
p.likeDeviceID = [dic objectForKey:@"like_device_id"];
p.disLikeNumber = [dic objectForKey:@"dislike_number"];
p.disLikeTime = [dic objectForKey:@"dislike_time"];
p.disLikePlayerID = [dic objectForKey:@"dislike_player_id"];
p.disLikeDeviceID = [dic objectForKey:@"dislike_device_id"];

[players insertObject:p atIndex:i];
[p release];
}

最佳答案

上面显示的代码是正确的。泄漏可能来自其他保留且未释放 Player 对象的对象。

请注意,Leaks 工具仅显示泄漏对象的分配位置,而不是发生错误内存管理的位置。但是,如果您单击其中一个泄漏对象旁边的灰色小箭头,您实际上可以看到该对象的整个保留/释放历史记录。您应该能够检查它并找出不平衡保留的来源。您可能会发现静态分析器(Product -> Analyze)在跟踪不正确的内存使用方面更有用。

关于objective-c - 我的 Object C 常见内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8230641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com