美文网首页
iOS 数据持久化的方式之二coreData

iOS 数据持久化的方式之二coreData

作者: 我不白先生 | 来源:发表于2020-11-25 10:53 被阅读0次
  • 1、创建coreData要勾选Use Core Data


    image.png
  • 2、 image.png
  • 3、 image.png
  • 4、如果出现link的错误把创建的模型删除
    ViewController.m

#import "AppDelegate.h"
#import "ViewController.h"
#import "Person+CoreDataProperties.h"
@interface ViewController ()

@end

@implementation ViewController
- (IBAction)clicked:(UIButton *)sender {
    //不管对数据库进行任何操作 都需要用到一个Context(上下文)(这个方法可以在任何地方得到AppDelegate对象)
    AppDelegate *app = (AppDelegate*)[UIApplication sharedApplication].delegate;
    
    switch (sender.tag) {
        case 0:{//增加数据
            Person *p = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:app.persistentContainer.viewContext];
            p.name = @"李四";
            p.age = 20;
            [app saveContext];
        }
            break;
        case 1://删除
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
            for (Person *p in persons) {
                if([p.name isEqualToString:@"张三"]){
                    [app.persistentContainer.viewContext deleteObject:p];
                    [app saveContext];
                }
            }
        }
            break;
        case 2://修改
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
            for (Person *p in persons) {
                if([p.name isEqualToString:@"李四"]){
                    p.name = @"王五";
                    p.age = 88;
                    [app saveContext];
                }
            }
        }
          
            break;
        case 3://查询
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];
            for (Person *p in persons) {
                NSLog(@"%@ %d %@",p.name,p.age,p.objectID);
            }
        }
            break;
    }
}

相关文章

网友评论

      本文标题:iOS 数据持久化的方式之二coreData

      本文链接:https://www.haomeiwen.com/subject/eevdiktx.html