// ObjectModel对象模型已利用Xcode可视化图形工具创建好
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Model
NSManagedObjectModel *model = [NSManagedObjectModelmergedModelFromBundles:nil];
// Coordinator
NSPersistentStoreCoordinator *psc = [[NSPersistentStoreCoordinatoralloc] initWithManagedObjectModel:model];
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"core_data_db.db"];
NSLog(@"%@",path);
NSURL *url = [NSURLfileURLWithPath:path];
NSError *error = nil;
NSPersistentStore *store = [pscaddPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nilURL:url options:nilerror:&error];
if (!store) {
NSLog(@"psc add failed: %@",[errordescription]);
}
// Context
NSManagedObjectContext *context = [[NSManagedObjectContextalloc] init];
context.persistentStoreCoordinator = psc;
// Insert
NSManagedObject *student = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Student"inManagedObjectContext:context];
[student setValue:[NSNumbernumberWithInt:1]forKey:@"no"];
[studentsetValue:@"小明"forKey:@"name"];
[student setValue:[NSNumbernumberWithInt:60]forKey:@"score"];
NSManagedObject *student1 = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Student"inManagedObjectContext:context];
[student1 setValue:[NSNumbernumberWithInt:2]forKey:@"no"];
[student1setValue:@"小花"forKey:@"name"];
[student1 setValue:[NSNumbernumberWithInt:72]forKey:@"score"];
NSManagedObject *student2 = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Student"inManagedObjectContext:context];
[student2 setValue:[NSNumbernumberWithInt:3]forKey:@"no"];
[student2setValue:@"小宝"forKey:@"name"];
[student2 setValue:[NSNumbernumberWithInt:59]forKey:@"score"];
if (![context save:&error]){
NSLog(@"save failed:%@",[errordescription]);
}
// Select
NSFetchRequest *request = [[NSFetchRequestalloc] initWithEntityName:@"Student"];
NSSortDescriptor *sort = [NSSortDescriptorsortDescriptorWithKey:@"no"ascending:NO];
request.sortDescriptors = [NSArrayarrayWithObject:sort];
NSArray *objects = [context executeFetchRequest:request error:&error];
if (!objects) {
NSLog(@"fatch failed:%@",[errordescription]);
}
for (NSManagedObject *objin objects) {
NSLog(@"%@ %@ %@",[objvalueForKey:@"no"],[objvalueForKey:@"name"],[objvalueForKey:@"score"]);
}
// Update
NSManagedObject *obj = [objects firstObject];
[objsetValue:@"炎魔之王"forKey:@"name"];
if (![context save:&error]) {
NSLog(@"save failed %@",[errordescription]);
}
objects = [contextexecuteFetchRequest:request error:&error];
if (!objects) {
NSLog(@"fatch failed:%@",[errordescription]);
}
for (NSManagedObject *objin objects) {
NSLog(@"%@ %@ %@",[objvalueForKey:@"no"],[objvalueForKey:@"name"],[objvalueForKey:@"score"]);
}
// Delete
[contextdeleteObject:[objects lastObject]];
if (![context save:&error]) {
NSLog(@"delete failed %@",[errordescription]);
}
}