Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
366 views
in Technique[技术] by (71.8m points)

iphone - How to retrieve the last inserted value in a column using CoreData?

In my CoreData application I want display the last inserted stdId in Table Student. Is there any easy way to retrieve the last inserted value in a column ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It's quite simple if in your Student entity you add a property of type NSDate like createdAt.

When you insert a new Student, you need to pass the current date for that property.

[aStudent setValue:[NSDate date] forKey:@"createdAt"];

or

aStudent.createdAt = [NSDate date];

if you have created a subclass of Entity.

Once done, you can fetch against Student using a limit of 1 and a sort descriptor with ascending value NO.

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];

Hope that helps.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...