0

嗨,我是核心数据的新手,我想知道行 ID,对于 DISTINCT 值,我编写了这样的代码:

 NSEntityDescription *entity = [NSEntityDescription entityForName:@"Student" inManagedObjectContext:self.mangedContext];
[request setEntity:entity];  // Set NSEntityDescription object to FetchRequest
[request setResultType:NSDictionaryResultType];
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch:@[@"studentName"]];
NSError *requestError = nil;
NSArray*array = [mangedContext executeFetchRequest:request error:&requestError];

在这里我得到学生姓名看起来像这样

{
    studentName = xxxx;

},.

但我需要 Total row 或那个 StudentName = xxxx 的 Row Id;

请帮我

提前致谢。

4

2 回答 2

1

当您使用 CoreData 时,您使用对象进行管理,因此没有主键或行 ID,但您创建的每个实体都有一个 objectID。因此,如果您从请求中收到实体 Student,那么您可以通过访问它的属性来获取它的 IDstudent.objectID

于 2013-10-04T13:58:14.123 回答
0
NSEntityDescription *entityDescription = [NSEntityDescription
                                              entityForName:@"Student"  inManagedObjectContext:self.mangedContext];
    NSFetchRequest *fetch = [[NSFetchRequest alloc] init];

    [fetch setEntity:entityDescription];
    [fetch setResultType:NSDictionaryResultType];
    [fetch setReturnsDistinctResults:YES];

    NSError *error = nil;

    NSArray *studentDetails =[self.mangedContext executeFetchRequest:fetch error:&error]; // Here you will get entire student table values.

// Use your NSManagedObject and get particular field value(for ex, id, name)
Student *student =  [studentDetails objectAtIndex:0];
NSNumber *studentId = student.stuId;
于 2013-10-04T09:38:58.233 回答