Я хотел бы использовать Core Data для приложения для рисования, в котором пользователь рисует в UIImageView с помощью CGPoints, имеет возможность сохранять и позже загружать разные рисунки (и добавлять к ним, если пользователь желает - например, изменчивость)
Я прочитал несколько учебных пособий по базовым данным и просмотрел Руководство по программированию Core Data, но я не могу понять, что нужно сделать, чтобы сохранить рисунок в Core Data, то есть какой тип атрибута использовать (я полагаю, трансформируемый) и как именно получить CGPoints (опять же преобразование, я полагаю) для работы с управляемым объектом, который мне нужно создать.
Для рисования я использую методы:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {...}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {...}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {...}
В iPhoneCoreDataRecipes проект Apple меняет изображения на данные для Core Data — (чтобы вам не пришлось скачивать проект, их код в файле реализации для преобразования находится внизу поста). В этом случае он преобразует PNG в данные, поэтому я не уверен, как применить это к CGPoints в UIImageView. Я буду рад предоставить больше моего кода, если это необходимо.
Заранее спасибо,
Джеймс
.
.
Код рецепта Apple:
@implementation Recipe
@dynamic name, image, overview, thumbnailImage, instructions, ingredients, type, prepTime;
@end
@implementation ImageToDataTransformer
+ (BOOL)allowsReverseTransformation {
return YES;
}
+ (Class)transformedValueClass {
return [NSData class];
}
- (id)transformedValue:(id)value {
NSData *data = UIImagePNGRepresentation(value);
return data;
}
- (id)reverseTransformedValue:(id)value {
UIImage *uiImage = [[UIImage alloc] initWithData:value];
return [uiImage autorelease];
}
@end