1

我想将 Core Data 用于绘图应用程序,其中用户使用 CGPoints 在 UIImageView 中绘制可以选择保存并在以后加载不同的绘图(如果用户需要,可以添加到它们 - 例如可变性)

我已经阅读了一些核心数据教程并浏览了核心数据编程指南,但我似乎无法弄清楚需要做什么才能将绘图保存到核心数据,即使用什么类型的属性(我想是可转换的)和如何让 CGPoints(我想再次转换)与我需要创建的 managedObject 一起工作。

要绘制我正在使用的方法:

- (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 转换为数据,因此我不确定如何将其应用于 UIImageView 中的 CGPoints。如有必要,我很乐意提供更多代码。

在此先感谢,
詹姆斯

.

.

苹果的食谱代码:

@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
4

1 回答 1

1

根据 TechZen 的建议:

您需要在 CoreData 中查询坐标还是只想获取绘图并绘制构成绘图的所有点?

如果您需要查询坐标,请创建一个代表每个具有 2 个属性(坐标)的 CGPoint 的核心数据实体,否则为每个具有可转换属性和 NSValue 的图形创建一个模型对象来存储所有点。

CGPoint -> NSValue -> NSMutableArray -> (transformable) NSManagedObject 属性

于 2011-06-10T06:06:56.807 回答