在用core Data持久化数据时看到的简单的例子

来源:互联网 发布:三线性优化各向异性 编辑:程序博客网 时间:2024/05/18 00:04
  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  4.     // Override point for customization after application launch.  
  5.     self.window.backgroundColor = [UIColor whiteColor];  
  6.     [self.window makeKeyAndVisible];  
  7.           
  8.     [self addUser];         
  9.     [self gainDatas];  
  10.       
  11.     return YES;  
  12. }  
  13. //添加  
  14. -(void)addUser{  
  15.     UserInfo * userInfo  = [NSEntityDescription insertNewObjectForEntityForName:@"UserInfo"   
  16.                                                          inManagedObjectContext:self.managedObjectContext];      
  17.     userInfo.name = @"dage";  
  18.     userInfo.password = @"password3";  
  19.     NSError *error = nil;  
  20.     if (![self.managedObjectContext save:&error]) {          
  21.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  22.         abort();  
  23.     }  
  24.       
  25.     NSLog(@"add success");  
  26.       
  27. }  
  28. //查询  
  29. -(void)gainDatas {      
  30.     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];  
  31.     [fetchRequest setEntity:[NSEntityDescription entityForName:@"UserInfo" inManagedObjectContext:self.managedObjectContext]];  
  32.       
  33.     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like[cd]'baobao'"];//查询条件  
  34.     // NSPredicate *predicate = [NSPredicate predicateWithFormat:@"password='password3'"];//查询条件  
  35.       
  36.     NSMutableArray *sortDescriptors = [NSMutableArray array];    //排序用  
  37.     [sortDescriptors addObject:[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES] ];  //排序用  
  38.       
  39.     [fetchRequest setPredicate:predicate];  //查询条件  
  40.     [fetchRequest setFetchBatchSize:5];     //分页    
  41.     [fetchRequest setSortDescriptors:sortDescriptors];  //排序  
  42.     [fetchRequest setReturnsObjectsAsFaults:NO];  
  43.     [fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"name", @"password", nil]];  //查询的字段,一般不需要  
  44.     NSError *error = nil;  
  45.     NSArray *fetchedItems = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];  
  46.     if (fetchedItems == nil) {  
  47.         NSLog(@"fetch request resulted in an error %@, %@", error, [error userInfo]);  
  48.     }else {  
  49.         NSLog(@"fetchedItems=%d",fetchedItems.count);  
  50.         for (UserInfo *user in fetchedItems) {  
  51.             NSLog(@"user.authour=%@",user.name);  
  52.             // [self deleteUser:user];  //删除              
  53.             // [self updateUser:user];  //更新  
  54.         }  
  55.     }      
  56. }  
  57. //删除:NSManagedObject对象必须先取出来,用managedObjectContext删除,保存就好  
  58. -(void)deleteUser:(id)user{  
  59.     [self.managedObjectContext deleteObject:user];    
  60.     NSError *error = nil;  
  61.     if (![self.managedObjectContext save:&error]) {          
  62.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  63.         abort();  
  64.     }  
  65.       
  66.     NSLog(@"delete success");      
  67. }  
  68. //更新:直接修改对象,保存managedObjectContext就好  
  69. -(void)updateUser:(UserInfo*)user{  
  70.     user.name = @"baobao";   //修改后,直接保存managedObjectContext就可以了   
  71.     NSError *error = nil;  
  72.     if (![self.managedObjectContext save:&error]) {          
  73.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  74.         abort();  
  75.     }  
  76.       
  77.     NSLog(@"update success");      
  78. }  
0 0
原创粉丝点击