gpt4 book ai didi

iPhone - 用户默认值和 UIImages

转载 作者:行者123 更新时间:2023-12-03 20:26:48 25 4
gpt4 key购买 nike

过去几个月我一直在开发 iPhone 应用程序。最近,我想提高性能并缓存 UI 中使用的一些图像。这些图像是用户从网络上随机下载的,因此我无法将特定图像添加到项目中。我还已经使用 NSUserDefaults 来保存应用程序中的其他信息。

所以现在我尝试将 UIImages 字典保存到我的 NSUserDefaults 对象并获取...

-[UIImageencodeWithCoder:]:无法识别的选择器发送到实例

然后我决定使用名为 UISaveableImage 的类对 UIImage 进行子类化并实现 NSCoding。所以现在我在...

@implementation UISaveableImage

-(void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:super forKey:@"image"];
}

-(id)initWithCoder:(NSCoder *)decoder
{
if (self=[super init]){
super = [decoder decodeObjectForKey:@"image"];
}
return self;
}

@end

这并不比我开始的地方好多少。如果我能够将 UIImage 转换为 NSData 我会很好,但我能找到的只是像 UIImagePNGRepresentation 这样的函数,它要求我知道这是什么类型的图像。 UIImage 不允许我做的事情。想法?我觉得我可能走错了路......

最佳答案

您不想将图像存储在 NSUserDefaults 中。它们是大块数据,NSUserDefaults 存储为 plist;您想向其中写入少量信息。

您应该将图像写入磁盘,然后将文件名存储为默认值:

NSString   *filename = myImageFilename;
[UIImagePNGRepresentation(image) writeToFile: myImageFilename atomically];
[[NSUserDefaults standardDefaults] setObject: myImageFilename forKey: @"lastImageFilename"];

关于iPhone - 用户默认值和 UIImages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625215/

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