coredata 最簡單例子

  1. 先按照網上的教程,建一個簡單的帶coredata的項目  
  2. 再 添加一個 UserInfo 對象(表)(按照網上的教材,可視化方式添加)  
  3.   
  4. 然後在AppDelegate.m中按如下修改,(只添加了4個方法)  
  5.   
  6. 然後運行,看控制檯日誌  
  7.   
  8.   
  9. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  10. {  
  11.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  12.     // Override point for customization after application launch.  
  13.     self.window.backgroundColor = [UIColor whiteColor];  
  14.     [self.window makeKeyAndVisible];  
  15.           
  16.     [self addUser];         
  17.     [self gainDatas];  
  18.       
  19.     return YES;  
  20. }  
  21. //添加  
  22. -(void)addUser{  
  23.     UserInfo * userInfo  = [NSEntityDescription insertNewObjectForEntityForName:@"UserInfo"   
  24.                                                          inManagedObjectContext:self.managedObjectContext];      
  25.     userInfo.name = @"dage";  
  26.     userInfo.password = @"password3";  
  27.     NSError *error = nil;  
  28.     if (![self.managedObjectContext save:&error]) {          
  29.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  30.         abort();  
  31.     }  
  32.       
  33.     NSLog(@"add success");  
  34.       
  35. }  
  36. //查詢  
  37. -(void)gainDatas {      
  38.     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];  
  39.     [fetchRequest setEntity:[NSEntityDescription entityForName:@"UserInfo" inManagedObjectContext:self.managedObjectContext]];  
  40.       
  41.     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like[cd]'baobao'"];//查詢條件  
  42.     // NSPredicate *predicate = [NSPredicate predicateWithFormat:@"password='password3'"];//查詢條件  
  43.       
  44.     NSMutableArray *sortDescriptors = [NSMutableArray array];    //排序用  
  45.     [sortDescriptors addObject:[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES] ];  //排序用  
  46.       
  47.     [fetchRequest setPredicate:predicate];  //查詢條件  
  48.     [fetchRequest setFetchBatchSize:5];     //分頁    
  49.     [fetchRequest setSortDescriptors:sortDescriptors];  //排序  
  50.     [fetchRequest setReturnsObjectsAsFaults:NO];  
  51.     [fetchRequest setPropertiesToFetch:[NSArray arrayWithObjects:@"name", @"password", nil]];  //查詢的字段,一般不需要  
  52.     NSError *error = nil;  
  53.     NSArray *fetchedItems = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];  
  54.     if (fetchedItems == nil) {  
  55.         NSLog(@"fetch request resulted in an error %@, %@", error, [error userInfo]);  
  56.     }else {  
  57.         NSLog(@"fetchedItems=%d",fetchedItems.count);  
  58.         for (UserInfo *user in fetchedItems) {  
  59.             NSLog(@"user.authour=%@",user.name);  
  60.             // [self deleteUser:user];  //刪除              
  61.             // [self updateUser:user];  //更新  
  62.         }  
  63.     }      
  64. }  
  65. //刪除:NSManagedObject對象必須先取出來,用managedObjectContext刪除,保存就好  
  66. -(void)deleteUser:(id)user{  
  67.     [self.managedObjectContext deleteObject:user];    
  68.     NSError *error = nil;  
  69.     if (![self.managedObjectContext save:&error]) {          
  70.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  71.         abort();  
  72.     }  
  73.       
  74.     NSLog(@"delete success");      
  75. }  
  76. //更新:直接修改對象,保存managedObjectContext就好  
  77. -(void)updateUser:(UserInfo*)user{  
  78.     user.name = @"baobao";   //修改後,直接保存managedObjectContext就可以了   
  79.     NSError *error = nil;  
  80.     if (![self.managedObjectContext save:&error]) {          
  81.         NSLog(@"Unresolved error %@, %@", error, [error userInfo]);  
  82.         abort();  
  83.     }  
  84.       
  85.     NSLog(@"update success");      
  86. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章