【发布时间】:2015-01-24 19:58:25
【问题描述】:
在我的应用程序中,我使用了一个核心数据模型,其中只有一个实体和一些属性。我想要达到的目标:
属性“imagePath”是 NSString 类型,用于存储对应 .png 图像所在的文档目录的路径。
属性 B“imageCoreData”是二进制数据类型。
我想将文档目录中的所有图像移动到 Core Data。
所以我需要执行以下操作的代码 - 从文档目录中的属性 A 获取图像,将其转换为 NSData 并将其作为二进制数据保存到属性 B“imageCoreData”。并且对我得到的每个对象都这样做。
如果它成功完成,如果我能得到通知,那就太好了。也许它也应该在后台工作以不阻塞用户界面。
我想要的一样:
存储日期的 NSDate 类型的属性 C“日期”。
NSString 类型的属性 D“dateString”。
从属性 C 中获取日期并将日期从 NSDate 转换为 NSString 并将其保存在属性 D 中。对于我得到的所有对象,我也需要这个。
更新
我可以获得包含我所有到文档目录的路径的字典。但是如何拉出所有图像,隐藏并保存到属性B?
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
NSEntityDescription *entityImg = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:self.managedObjectContext];
fetchRequest.resultType = NSDictionaryResultType;
fetchRequest.propertiesToFetch = [NSArray arrayWithObject:[[entityImg propertiesByName] objectForKey:@"imagePath"]];
fetchRequest.returnsDistinctResults = YES;
NSArray *dictionary = [self.managedObjectContext executeFetchRequest:fetchRequest error:nil];
NSLog(@"%@", dictionary);
【问题讨论】:
-
不幸的是,没有什么真正有效的。从一种属性类型到另一种属性类型的转换并不难,但是我一次获得的所有对象都没有做到这一点。我想我需要以某种方式遍历所有对象,但由于我是初学者,我无法做到这一点。
-
查看 NSFetchRequest 以了解如何从核心数据存储中检索所有实体。检索到它们后,您可以遍历它们,更新属性,然后保存更新。
-
问题可能出在
NSArray *dictionary。这条线有什么奇怪的地方吗?
标签: ios objective-c core-data