2013-07-29 188 views
1

这里可能存在重复问题,但我搜索了但无法找到答案。将PNG保存到磁盘,但将文件路径保存到核心数据

我有一个应用程序接受来自用户的签名并将签名保存为.png文件。这里是我使用的代码:

-(void)saveSignature 

{ 
    UIGraphicsBeginImageContext(self.frame.size); 
    [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    signature = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    NSData *pngData = UIImagePNGRepresentation(signature); 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsPath = [paths objectAtIndex:0]; //Get the docs directory 
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"signature.png"]; 
    [pngData writeToFile:filePath atomically:YES]; //Write the file 
} 

此代码很好。它将签名的.png保存在我的应用程序的文档文件夹中。我需要做的是将文件路径保存到我的Core Data模型并通过它访问它。核心数据。

如果任何人都能指引我走向正确的方向,那会很棒。

+0

什么似乎是问题?您只需将filePath分配给托管对象的字符串属性并保存上下文。 – Adam

+0

这就是我所设想的,但我如何访问它?如果我叫它,核心数据不会返回一个字符串? –

回答

1

你不会说核心数据中是否还有其他东西。如果这样做,只需在模型上创建一个imagePath属性,并将文档的路径分配给它。然后,根据模型,使用UIImage的imageWithContentsOfFile:方法,只需将图像加载到UIImage中。

如果您还没有生成Core Data和生成模型,那么您确实需要学习Core Data,而且StackOverflow可能不是最佳选择。 This tutorial可能是一个很好的开始。

当谈到Core Data时,我的第一条建议是使用MagicalRecord库,这使得Core Data的普遍使用变得非常容易。

+1

谢谢。我设置了核心数据,我有1个具有3个属性的实体。我想为图像添加第四个。我假设我将imagePath添加为String。谢谢您的帮助! –