关于核心数据和相机的问题

时间:2010-01-23 01:05:43

标签: iphone objective-c core-data camera

所以我正在开发一个使用核心数据来存储用户可以设置的对象属性的应用程序。我主要关注第一部分,即在核心数据方面设置所有内容,现在我已准备好继续处理相机的下一部分。我希望能够添加一个城市或其他地理位置(这是对象),然后能够在我的应用程序中拍摄照片,相应地将这些图片(或属性)存储在对象下。例如,当我在我的uitableview上点击纽约时,我将能够查看我在纽约拍摄的任何数量的照片。当我点击佛罗里达州时,我能够看到我在佛罗里达州拍摄的任何照片。所以,我的问题是关于这是否可能?对不起,这是一个模糊的问题。如果我要从我的应用程序中拍摄照片,我是否也可以将它们保存在那里?并在我的应用程序中列出它们?我想我正在构想一个单独的核心数据,看起来像是一个地方对象让你管理图片,以便他们可以像幻灯片放映模式一样直接观看,我可以看到我在该位置拍摄的所有照片。这是可能的还是会保存在图片应用中的默认图片位置?可以想象有任何内存限制吗?或者我能从媒体存储器(8gb,16gb等)中拉出来吗?我想我的问题不是针对具体的代码示例,而是针对定向目的。如果有人有任何见解/想法来帮助我,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:3)

您描述的设计绝对可能。

您可以让用户有机会从照片库中选择照片(和/或视频)和/或使用相机拍摄新照片,然后在应用程序中使用/编辑/存储照片。查看UIImagePickerControllerUIImagePickerControllerDelegate协议。

您可以使用UIImagePNGRepresentation()UIImageJPEGRepresentation()将图像作为可转换属性直接存储在Core Data中。如果执行此操作,建议您使用图像数据属性创建单独的实体,以便可以快速加载其他属性(并且只根据需要在关系中提取图像数据)。或者,您可以将图像存储在应用程序的Documents目录中的文件中,并将文件名保存为实体中的属性。

查看TTThumbsViewController中的Three20 library,了解显示照片缩略图网格的好方法。

答案 1 :(得分:1)

我真的建议将文件存储到应用程序文档目录,并在数据库中存储它们的路径。您可以通过其他方式执行此操作,但将它们存储在文件中会使数据库更小,并使您可以更灵活地将其上载到某处,而无需将整个映像加载到内存中。