gpt4 book ai didi

ios - NSMutableDictionary VS NSMutableArray 速度

转载 作者:行者123 更新时间:2023-12-01 18:12:13 24 4
gpt4 key购买 nike

我正在为从 Parse.com 下载的图像使用缓存。图像用作 UITableView 单元格中 UIButtons 的背景图像。图像存储在 NSMutableDictionary 中。下面的代码:

    PFUser *user =self.currentUser.friends[(int)indexPath.row*4+i];
label.text=user.username;

UIImage *cachedImage = self.images[@(indexPath.row*4+i)];
if (cachedImage) {
NSLog(@"Have image");
[button setBackgroundImage:cachedImage forState:UIControlStateNormal];
}

else {
NSLog(@"Download image");
//download code

PFFile *userImageFile = user[@"profilePic"];
[userImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
if (!error) {
UIImage *image = [UIImage imageWithData:imageData];
self.images[@(indexPath.row*4+i)] = image;
[button setBackgroundImage:image forState:UIControlStateNormal];

}
}];

}

该解决方案效果很好,但我意识到如果我删除了一个 friend ,我需要从字典中删除他们,如果我这样做,这意味着我将不得不更改与 UIImages 关联的所有索引。我认为 NSMutable 数组会更好,所以我不必这样做,我可以根据需要插入和删除对象。这会影响应用程序的速度吗?数组比字典效率低吗?

最佳答案

使用字典的全部原因是让项目可以通过属性访问,而不是通过数字索引。通过使用行索引,您违背了拥有字典的目的。

而不是 [@(indexPath.row*4+i)]使用更稳定的 key ,例如 username或图像的 URL。

如果您想使用数字索引( indexPath.row ),请使用 NSMutableArray .

请注意,只有当您拥有数千个项目时,您才应该担心速度数组与字典。

关于ios - NSMutableDictionary VS NSMutableArray 速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28543164/

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