ios coredata 增刪改查代碼

以Person實體為例(name、age、sex)
Person關系Tel(tel)
1增加數據

NSManagedObject *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];  
        [person setValue:@"LiJunliang" forKey:@"name"];  
        [person setValue:[NSNumber numberWithInt:23] forKey:@"age"];  
        [person setValue:@"boy" forKey:@"sex"];  
        NSManagedObject *tel = [NSEntityDescription insertNewObjectForEntityForName:@"Tel" inManagedObjectContext:self.managedObjectContext];  
        [tel setValue:@"133xxxxyyyy" forKey:@"tel"];  
        [tel setValue:person forKey:@"owner"];  
        [person setValue:tel forKey:@"tel"];  
  
        if (![self.managedObjectContext save:&error]) {  
            NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);  
        }  

2刪除數據

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];  
   NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];  
   [fetchRequest setEntity:entity];  
   NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];  
   for (NSManagedObject *info in fetchedObjects) {  
       [self.managedObjectContext deleteObject:info];  
   }  
     
   if ([self.managedObjectContext hasChanges]) {  
       [self.managedObjectContext save:&error];  
   }  

3修改數據

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];  
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@",@"xiaojie"]];  
    NSArray *fetchedObject = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];  
    for (NSManagedObject *info in fetchedObject) {  
        [info setValue:[NSNumber numberWithInt:24]forKey:@"age"];  
    }  
    if (![self.managedObjectContext save:&error]) {  
        NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);  
    }  

4查詢數據

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];  
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@",@"xiaojie"]];  
    NSArray *fetchedObject = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];  
    for (NSManagedObject *info in fetchedObject) {  
        NSLog(@"Name :%@",[info valueForKey:@"name"]);  
        NSLog(@"Age :%@",[info valueForKey:@"age"]);  
        NSLog(@"Sex :%@",[info valueForKey:@"sex"]);  
    }  

PS:修改數據時現查詢,如果實體查詢出來的修改。最后保存時會更新,如果實體時新得到的會插入。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容