使用核心数据绘图(CGPoint)

时间:2011-06-07 21:36:13

标签: objective-c core-data cgpoint

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

我已经阅读了一些核心数据教程并浏览了Core Data Programming guide,但我似乎无法弄清楚需要做什么才能将绘图保存到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转换为数据,因此我不确定如何将其应用于UIImageView中的CGPoints。如果有必要,我很乐意提供更多代码。

提前致谢,
詹姆斯

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

1 个答案:

答案 0 :(得分:1)

根据TechZen的建议:

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

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

CGPoint - &gt; NSValue - &gt; NSMutableArray - &gt; (可转换的)NSManagedObject属性