【发布时间】:2012-09-04 00:59:09
【问题描述】:
在我的 CoreData 应用程序中,我想在 Table Student 中显示最后插入的 stdId。有什么简单的方法可以检索列中最后插入的值吗?
【问题讨论】:
-
很抱歉我的问题,但是...你确定
CoreData是如何工作的吗?
在我的 CoreData 应用程序中,我想在 Table Student 中显示最后插入的 stdId。有什么简单的方法可以检索列中最后插入的值吗?
【问题讨论】:
CoreData 是如何工作的吗?
如果在 Student 实体中添加 NSDate 类型的属性,例如 createdAt,这非常简单。
当您插入新的Student 时,您需要传递该属性的当前日期。
[aStudent setValue:[NSDate date] forKey:@"createdAt"];
或
aStudent.createdAt = [NSDate date];
如果您创建了Entity 的子类。
完成后,您可以使用限制为 1 和升序值 NO 的排序描述符来获取 Student。
NSFetchRequest* request = [NSFecthRequest fetchRequestWithEntityName:@"Student"];
[request setFetchLimit:1];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdAt" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
NSManagedObject *latestAddedStudent = [results objectAtIndex:0];
希望对您有所帮助。
【讨论】: