• IOS-core data


    三个主要的类

    1:NSManagedObjectModel(上下文,数据 关系)

    2:NSPersistentStoreCoordinator(持久性数据协调器,和sqlite打交道的 与1建立关系,通过3执行数据交互)

    3:NSManagedObjectContext(管理对象上下文)

    分页查询:

     分页起始索引

      request.fetchoffset = 0;

     分页条数

      request.fetchLimit = 6;

    自己写的一个代码:

    1.声明:  

        NSManagedObjectModel *model;

        NSPersistentStoreCoordinator *store;

      NSManagedObjectContext *_context;

    2.初始化管理上下文:

      _context = [[NSManagedObjectContext allocinit];

    3.初始化上下文模型

      NSURL *modelURL = [[NSBundle mainBundleURLForResource:@"Model"   withExtension:@"momd"];

         model = [[NSManagedObjectModel allocinitWithContentsOfURL:modelURL];

    4.实例化存储桥梁,需要模型

        store = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:model];

    5.添加一个持久化的数据库

        NSArray *docs = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectoryNSUserDomainMaskYES);

        NSString *path = [docs[0stringByAppendingPathComponent:@"my.db"];

        NSURL *url = [NSURL fileURLWithPath:path];

        NSLog(@"%@",url);

        NSError *error = nil;

        [store addPersistentStoreWithTypeNSSQLiteStoreType configuration:nil URL:url options:nil error:&error];

        if(error)

        {

            NSLog(@"打开数据库出错:%@",error);

        }

        else

        {

            _context.persistentStoreCoordinator = store;

            NSLog(@"打开数据库成功");

        }

    此时数据库创建成功

    6.添加纪录

    People *p = [NSEntityDescription insertNewObjectForEntityForName:@"People" inManagedObjectContext:_context];

    p.name = self.name.text;

    Sorce *s = [NSEntityDescription insertNewObjectForEntityForName:@"Sorce" inManagedObjectContext:_context];

    p.sorce.easysorce = easytime;

    保存添加

    [_context save:nil];

    7.查询数据库

    //实例化一个查询

        NSFetchRequest *request= [NSFetchRequest fetchRequestWithEntityName:@"People"];

        //congtext执行查询

        NSString *textfiled = self.name.text;

        request.predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",textfiled];

        NSArray *array = [_context executeFetchRequest:request error:nil];

        for (People *p in array) {

            NSString *agetextfiled = [p.age stringValue];

            [self.age setText:agetextfiled];

        }

        

        if([self.age.text  isEqual@""])

        {

            NSString *text = @"查无此人";

            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:text delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nilnil];

            [alert show];

        }

    8.删除一条数据

    // 1. 实例化查询请求

        NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"People"];

        

        // 2. 设置谓词条件

        NSString *textfiled = self.name.text;

        request.predicate = [NSPredicate predicateWithFormat:@"name LIKE %@",textfiled];

        

        // 3. 由上下文查询数据

        NSArray *result = [_context executeFetchRequest:request error:nil];

        

        // 4. 输出结果

        for (People *person in result) {

            // 删除一条记录

            [_context deleteObject:person];

            break;

        }

        

        // 5. 通知_context保存数据

        if ([_context save:nil]) {

            NSLog(@"删除成功");

            [self.age setText:@""];

            [self.name setText:@""];

        } else {

            NSLog(@"删除失败");

        }

    详细的可以参考:http://blog.csdn.net/ysy441088327/article/details/8606019

  • 相关阅读:
    fedora 20 安裝 及 配置桌面環境
    2014上半年—Linux操作系统—嵌入式开发—中考
    【hdu 1864】最大报销额
    【hdu 1067】Gap
    【t055】成绩统计
    【b094&&z14】靶形数独
    【z06】观光公交
    【u213&&t037】修剪花卉
    【t062】最厉害的机器人
    【t075】郁闷的记者
  • 原文地址:https://www.cnblogs.com/zhouwenbo/p/4447735.html
Copyright © 2020-2023  润新知