1. CDVehicle *vehicle = (CDVehicle *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];

不会存储数据,查询是查不出来的,重启APP之后数据不存储;

2. CDVehicle *vehicle = (CDVehicle *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil];

NSError *error = nil;

[context save:&error];

if (error) {

// NSLog(@"save false = %@",error.description);

}else

{

// NSLog(@" save sucess ");

}


不会存储数据,查询是查不出来的,重启APP之后数据依然存在.

小结:由1、2可得 [context save:&error] 方法,是对数据库进行持久化。


3. CDVehicle *vehicle = (CDVehicle *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:context];

数据会存储, 重启APP之后数据不存储.


4. CDVehicle *vehicle = (CDVehicle *)[[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:context];



NSError *error = nil;

[context save:&error];

if (error) {

// NSLog(@"save false = %@",error.description);

}else

{

// NSLog(@" save sucess ");

}




数据会存储, 重启APP之后数据数据依然存在.


小结:由1、3可得 NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:CCC]; CCC分别为 nil,和 context,CCC决定了数据在APP生命周期里是否存储。


总结:CCC 是决定在APP生命周期(app的启动到退出后台)里数据是否存储, [context save:&error]决定了是否持久化到数据库中。