【发布时间】:2016-02-03 22:47:18
【问题描述】:
我在 IOS 中有一个适用于 iPhone 和 iPad 等的项目。对于这个项目,我使用 CoreData 来保存用户在应用程序中提供的数据。为了便于理解,让我们说它就像一个联系人应用程序。所以基本上你知道你有你的名字、工作、电话等。这个应用程序还为每个“联系人”存储一个图像。当然可选。为了防止数据库效率低下,我使用下面的路径代码将图像存储到 DocumentsDirectory 中。使用 ManagedObjects id 调用图像,这也是图像名称中使用的内容。但是,多个对象可以具有相同的 id,这会导致一些问题。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Person%i.jpg",[[_detailItem id] intValue]]];
基本上,我使用人的 id 拍摄图像。但是,多个人可以有相同的 id(An int-32)。我没有这样做,而是想知道 CoreData 是否有一种方法可以为每个存储的对象创建或创建唯一 id。这样,如果我更改 id 它不会丢失它的图片,或者如果另一个对象具有相同的 id 它不会使用相同的图片。
一些数据库,比如我以前使用的 MySQL,有一个属性选项,可以为它提供一个唯一的 id,用于用户/论坛/帖子/等... XCode 的 CoreData 中是否有类似的东西?我不想必须解析每个对象才能得到一个尚未使用的数字。
【问题讨论】:
标签: ios objective-c core-data auto-generate