Я пытаюсь сохранить UIImage для ABRecordRef
в моем собственном 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;
}
по какой-то причинепадает, как только я пытаюсь сохранить экземпляр этого класса.Что я сделал не так или лучше: как я могу добиться того, чего хочу?Спасибо!