gpt4 book ai didi

ios - 无法将 UIImage 存储在 NSMutableDictionary 中

转载 作者:行者123 更新时间:2023-11-28 21:01:52 25 4
gpt4 key购买 nike

我正在从 Parse 服务器获取图像,但是当我收到它并将其存储在 NSMutableDictionary 中时,当我检查它时它无法保留在那里。

NSString* messageSenderId = [receivedMessage objectForKey:@"Sender Id"];
NSLog(@"messageSenderId = %@", messageSenderId);

if([self.avatarDictionary objectForKey:messageSenderId] == nil) { // avatar image for sender not yet stored

PFQuery* userQuery = [PFUser query];
[userQuery whereKey:@"objectId" equalTo:messageSenderId];
PFUser* messageSender = (PFUser *)[[messageSenderQuery findObjects] firstObject];

PFFile *avatarImage = messageSender[@"profilePictureSmall"];
[avatarImage getDataInBackgroundWithBlock:^(NSData * _Nullable data, NSError * _Nullable error) {

UIImage* storedImage = [UIImage imageWithData:data];
[self.avatarDictionary setObject:storedImage forKey:messageSender.objectId];
NSLog(@"objectForKey: %@", [self.avatarDictionary objectForKey:messageSender.objectId]);
[self.collectionView reloadData];
}];
}

当我检查 storedImage 变量时,我发现它不是空的。但是,NSLog 显示在我将它存储在里面之后没有该键的对象。

最佳答案

当然可以,但我不会。
您的问题可能是因为您没有初始化可变字典。
图片占用大量内存,如果您存储大量图片,您的应用可能会被系统终止。
更好的方法是在本地保存图像并将它们的路径存储在可变字典中。
或者,如果您仍想将图像存储在 RAM 中,则可以使用 NSCache . NSCache 基本上是一个可变字典,但它通过自动驱逐资源具有更好的内存管理,并且它是线程安全的。

关于ios - 无法将 UIImage 存储在 NSMutableDictionary 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167527/

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