zoukankan      html  css  js  c++  java
  • 关于Core Data的一些整理(四)

    关于Core Data的一些整理(四)

    • 调用Core Data文件中的Request模板进行条件匹配

    1 //获取ObjectModel相当于获取Core Date文件
    2   NSManagedObjectModel *model = self.coreDataStack.contenxt.persistentStoreCoordinator.managedObjectModel;
    3   self.fetchRequest = [model fetchRequestTemplateForName:@"FetchRequest"];
    4   self.venues = [self.coreDataStack.contenxt executeFetchRequest:self.fetchRequest error:nil];
    • iOS8新增Asynchronous异步调用Core Data,提高性能
     1 @property (nonatomic, strong) NSFetchRequest *fetchRequest;
     2 @property (nonatomic, strong) NSAsynchronousFetchRequest *asyncFetchRequest;
     3 
     4   //asyncFetch只是对普通request的封装
     5   self.fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Venue"];
     6   self.asyncFetchRequest = [[NSAsynchronousFetchRequest alloc] initWithFetchRequest:self.fetchRequest completionBlock:^(NSAsynchronousFetchResult * _Nonnull result) {
     7     self.venues = result.finalResult;
     8     [self.tableView reloadData];
     9   }];
    10   //注意调用的是executeRequest:方法
    11   [self.coreDataStack.contenxt executeRequest:self.asyncFetchRequest error:nil];
    • iOS8新增批(Batch)处理,链接

    Batch Updates或Batch Deletes与普通NSFetchRequest请求不同的是,他们都基于NSPersistentStoreRequest类,这是直接对底层的NSPersistentStore进行数据操作的请求,而不经过NSManagedObjectContext,因此避免将固态存储的数据转移到内存再处理的过程,因此效率大大提升。

    1 //设置批处理请求,包含更新的内容,影响的stores
    2   NSBatchUpdateRequest *batchUpdate = [NSBatchUpdateRequest batchUpdateRequestWithEntityName:@"Venue"];
    3   batchUpdate.propertiesToUpdate = @{@"favorite":@YES};
    4   batchUpdate.affectedStores = self.coreDataStack.contenxt.persistentStoreCoordinator.persistentStores;
    5   batchUpdate.resultType = NSUpdatedObjectsCountResultType;//返回更新的行数
    6   
    7   NSBatchUpdateResult *batchResult = [self.coreDataStack.contenxt executeRequest:batchUpdate error:nil];
    8   NSLog(@"%@", batchResult.result);
    9   //在iOS9中又新增
  • 相关阅读:
    idea 导入maven项目各种红
    基于 Spring Security 的开源统一角色访问控制系统 URACS
    MySQL读写分离又一好办法 使用 com.mysql.jdbc.ReplicationDriver
    [转]CVS SVN VSS 使用对比
    推荐一个免费开源的虚拟机VBox(VirtualBox)
    JavaScript的对象属性的反射
    [转]需求分析的目的
    尝鲜安装iOS6及新特性
    EXP00003: 未找到段 (4,571) 的存储定义
    QQ邮箱里可以定阅博客园的文章了
  • 原文地址:https://www.cnblogs.com/jackma86/p/5131355.html
Copyright © 2011-2022 走看看