ここ数か月間、iPhone アプリを開発してきました。最近、パフォーマンスを向上させ、UI で使用されるいくつかの画像をキャッシュしたいと考えました。画像はユーザーによって Web からランダムにダウンロードされるため、特定の画像をプロジェクトに追加することはできません。私はすでに NSUserDefaults を使用して、アプリ内の他の情報を保存しています。
だから今、UIImagesの辞書をNSUserDefaultsオブジェクトに保存して取得しようとしています...
-[UIImage encodeWithCoder:]: 認識されないセレクターがインスタンスに送信されました
次に、UIImage を UISaveableImage という名前のクラスでサブクラス化し、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 で許可されていないこと。考え?間違った道に迷い込んだような気がします...