核心数据通过实体排序

时间:2011-07-11 18:15:19

标签: iphone xcode core-data

所有

我在我的程序中实现了Core Data来存储客户信息。让我们称每个实体为“CustomerInformation”。每个“CustomerInformation”实体都有三个属性,“count”,“property2”和“property3”,其中count是该特定实体的数字标识符。

因此,假设我有三个“CustomerInformation”实体......

CustomerInformation
-count //for example, this would be "1"
-property2
-property3
CustomerInformation
-count //for example, this would be "2"
-property2
-property3
CustomerInformation
-count //for example, this would be "3"
-property2
-property3

当我删除“CustomerInformation”(2)时,其他两个将保留其计数。此时我需要做的是循环遍历我的所有实体(在本例中为3)并查看缺失值的位置(如果我删除了“CustomerInformation”(2),则2将是缺失值)。

这是我的想法,但我需要帮助才能完成它。注意:for循环中的7是我想要存储的最大客户数,不用担心那部分

NSFetchRequest *custRequest = [[NSFetchRequest alloc] init];
    ProjectAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *custContext = [appDelegate managedObjectContext];

    NSEntityDescription *customerInformation = [NSEntityDescription entityForName:@"CustomerInformation"
                                                  inManagedObjectContext:custContext];
    [custRequest setEntity:customerInformation];

    NSError *error;
    NSArray *array = [custContext executeFetchRequest:custRequest error:&error];

    for (int n=0; n<=7; n++)
    {
        //here I need it to go through and find the missing 2
    }

1 个答案:

答案 0 :(得分:1)

搜索整个数据库以推断出刚删除的对象的count似乎是错误的方法。相反,您应该记录您删除的任何对象的count,以便您可以避免这一整个问题。当然,当你的数据库中有七个对象时,这并不是什么大不了的事,但是当你有数万个对象时它不会很好。