0

在像 SqlServer 这样的数据库中,我们可以设置一个自动递增的字段(身份增量),是否可以在核心数据中这样做?

4

5 回答 5

3

考虑使用 creationDate 字段。当您创建对象时,只需添加

NSDate *creationDate = [NSDate date];

对 NSDate 进行排序、将其转换为双精度等非常简单。

于 2013-11-14T03:30:52.150 回答
1

我认为核心数据中不可能进行内部和自动自动增量。您需要为此使用自定义解决方案。

你能告诉我你真正想要做什么吗?

我有同样的问题,我NSUserDefault用来存放我的柜台。

于 2012-04-28T13:34:06.157 回答
0

只需将 dode 下面放入您的测试项目中,以测试如何增加我们的计数器。

从该代码中,您将了解您需要做什么并根据需要更改此代码。

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    int count;
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    count = [prefs integerForKey:@"integerKey"];
    NSLog(@"counter is >>>>%d",count);
    [prefs setInteger:count forKey:@"integerKey"];

    // code for adding record to core data

    count++;
    NSUserDefaults *prefs1 = [NSUserDefaults standardUserDefaults];
    [prefs1 setInteger:count forKey:@"integerKey"];
    NSLog(@"counter is >>>>%d",count);
}
于 2012-04-30T06:02:54.350 回答
0

是的,这是可能的,但也许不是你想的那样。:) - 含义,而不是作为“关键”字段。

您可以创建一个“计数器” NSManagedObject,它在应用程序启动时初始化,并在跟踪“当前号码”和“下一个号码”属性后出现。

您可以检索当前数字并将其分配为需要具有此唯一且递增的“数字”的对象的属性值。

有一个示例代码“ iClass ”,我在 apple.com 上找不到链接,但是当在早期安装的 Xcode 中有一个目录/Developer/Examples/CoreData时,它是随 Xcode 一起安装的——你可能没有这个,以防万一,查看它可能会很有用。

于 2012-04-28T14:23:36.127 回答
0

如果您只想要一个在插入时自动递增的字段,那么使用 Core Data afaik 是不可能的。您将不得不提出一个自定义解决方案。哪种解决方案取决于您尝试解决的问题。

Core Data 确实为使用 Core Data 持久化的每个对象维护一个唯一的对象 ID(或 URI)。这里有更多关于对象 ID 和 URI 的内容。

于 2012-04-28T13:40:02.830 回答