UIImageABRecordRef
を自分のNSCoding
適合クラスに保存しようとしています。私が知る限り、それUIImage
はNSCoding
適合していないので、代わりに次の回避策を試しましたNSData
:
- (id)initWithRecordRef:(ABRecordRef)record{
//Getting the image
if (ABPersonHasImageData(record)){
CFDataRef imageData = ABPersonCopyImageData(record);
image = [UIImage imageWithData:(NSData *) imageData];
CFRelease(imageData);
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder{
//encode NSData representation from UIImage
tempData = UIImagePNGRepresentation(image);
[aCoder encodeObject:tempData forKey:@"image"];
}
- (id)initWithCoder:(NSCoder *)aDecoder{
//image
tempData = [aDecoder decodeObjectForKey:@"image"];
image= [UIImage imageWithData:[tempData valueForKey:@"image"]];
[tempData release];
return self;
}
このクラスのインスタンスを保存しようとすると、何らかの理由でプログラムがすぐにクラッシュします。私は何を間違っていましたか、またはより良いことをしましたか: どうすれば私がやりたいことを達成できますか? ありがとう!