Я занимаюсь разработкой приложения для iPhone за последние несколько месяцев. Недавно я хотел повысить производительность и кэшировать несколько изображений, которые используются в пользовательском интерфейсе. Изображения загружаются случайно из Интернета пользователем, поэтому я не могу добавить определенные изображения в проект. Я также использую NSUserDefaults для сохранения другой информации в приложении.iPhone - Пользовательские настройки по умолчанию и UIImages
Так что теперь я пытаюсь сохранить словарь 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 не позволяет мне делать. Мысли? Я чувствую, что, возможно, побродил по неправильному пути ...
Ответ Бена правильный, но ваше предположение о необходимости знать тип файла неверно. Представление UIImagePNGR возвращает NSData как PNG-файл, независимо от того, в каком формате он находился, когда он был загружен. –