gpt4 book ai didi

objective-c - 解析 JSON 时内存使用率较高

转载 作者:行者123 更新时间:2023-12-02 21:50:11 26 4
gpt4 key购买 nike

我目前正在解析 JSON 中的所有数据并将其存储在数组中。然而,当它开始解析时,内存使用量从大约 25mb 跃升至 800mb。经过一些研究后,我被告知将 @autoreleasepool 放入 GCD block 中,但没有效果。

这是我到目前为止得到的代码:

 self.channelSchedules = [NSMutableArray new];
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// Add code here to do background processing
//Loop through each channel object and download schedule
@autoreleasepool {
for (atlas_channel* channel in self.channels) {
NSLog(@"Updating listings for %@", [channel getChannelTitle]);
[self.channelSchedules addObject:[[channel getChannelSchedule] returnCurrentContentObject]];
[self.tableView reloadData];
[self scrollViewDidScroll:nil];
}
}
dispatch_async( dispatch_get_main_queue(), ^{
// Add code here to update the UI/send notifications based on the
// results of the background processing
[self.tableView reloadData];
});
});

我使用 TouchJSON 来解析数据。

经过进一步研究,我认为这与我将解析后的所有值存储到 NSArray 中(该 NSArray 将每个对象保留在内存中)这一事实有关。我想我必须使用 CoreData 或类似的东西。

最佳答案

仅在主线程上调用[self.tableView reloadData]。

关于objective-c - 解析 JSON 时内存使用率较高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31680686/

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