管理托管对象的生命周期(lifecycle)。还有其它功能:faulting、变更追踪(change tracking)、验证(validation)等。

  faulting:只把用到的那一部分数据从持久区里获取出来(第10章)。

  变更追踪:用于支持重做及撤销功能。

  验证机制:确保由托管对象模型所订立的规则。比方说,可以针对实体的单个属性来限定其最小值或最大值(第2章)。

  托管对象上下文也可以不止一个。有时我们需要在后台处理任务(比如把数据保存到磁盘或导入数据),这种情况下可以使用多个托管对象上下文。假如在前台上下文(foreground context)上调用save:,用户界面就可能会出现卡顿(lag)现象。避免这个问题,可以在用户按下Home键时调用save:。还有个稍微复杂但是更灵活的方法,采用两个托管对象上下文。前台上下文先把数据保存到后台数据上下文,后台上下文把数据异步保存到磁盘。

  iOS5以后就可以配置多个上下文之间的上下级关系。子上下文会把父上下文视为持久化存储区,而父上下文用来处理各种繁重的操作(后台保存数据等)(第11章)。

  创建托管对象上下文,需要创建NSMangedObjectContext类的实例。

1.1.3.托管对象上下文(Core Data 应用程序实践指南)的更多相关文章

  1. 2.14. 删除托管对象(Core Data 应用程序实践指南)

    删除托管对象,只要调用托管对象上下文的deleteObject 或 deleteObjects就可以了.同样,真正的删除,要在调用save:之后.

  2. 2.11. 创建托管对象(Core Data 应用程序实践指南)

    到现在为止,还没有创建过托管对象,回顾了一下,只是创建了托管对象模型,持久化存储区,持久化存储协调器,托管对象上下文. 那么,现在就来创建托管对象吧. 使用NSEntityDescription 的 ...

  3. 2.13. 获取托管对象(Core Data 应用程序实践指南)

    用NSFetchRequest获取NSArray,里面都是托管对象.如果上下文里没有数据,就会从持久化存储区里获取. NSFetchRequest *request = [NSFetchRequest ...

  4. 1.1.Core Data是什么(Core Data 应用程序实践指南)

    Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...

  5. 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)

    有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...

  6. Core Data 应用程序实践指南(Core Data 应用程序实践指南)

    译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...

  7. 2. 托管对象数据模型的基本知识(Core Data 应用程序实践指南)

    第一章的例子配置好了持久化存储区.持久化存储协调器.托管对象上下文.但是还没有对象图,本章要介绍托管对象模型的基础知识,并配置范例程序的对象图. 2.1. 托管对象模型是什么 托管对象模型是一种数据结 ...

  8. 1.4.2.3. SETUP(Core Data 应用程序实践指南)

    初始化Core Data的三个方法: init,初始化托管对象模型.持久化存储协调器.托管对象上下文 - (id)init { ) { NSLog(@"Running %@ '%@'&quo ...

  9. 2.7. 属性的各种设置选项(Core Data 应用程序实践指南)

    可供配置的选项根据属性类型的不同有所变化,并不是每一种属性都能配置下列选项 Transient:勾选该选项,表示该属性不写入“持久化存储区”,这听起来很奇怪,但有时候,只需要把特性留在托管对象上下文就 ...

随机推荐

  1. javascript 之Function对象的apply(),call(),bind(),方法和arguments,caller,length属性

    注:这篇文章原文:http://www.jb51.net/article/30883.htm 自己作为学习,重新写写. 一.写在前面的话 前端javascript编程还只是略懂皮毛,DOM知道一点,j ...

  2. 转 :Vim文件编码识别与乱码处理

    Vim文件编码识别与乱码处理   在 Vim 中,有四个与编码有关的选项,它们是:fileencodings.fileencoding.encoding 和 termencoding.在实际使用中,任 ...

  3. android脚步---跟随手指动的小球

    这次的学习主要是在包里面除自动生成的mainactivity.java之外,再新建一个class, DrawView,在mainactivity里面调用DrawView. 在DrawView里面主要是 ...

  4. (转)Hadoop之常见错误集锦

     Hadoop之常见错误集锦            下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:   ...

  5. 对Java配置文件Properties的读取、写入与更新操作

    http://breezylee.iteye.com/blog/1340868 对Java配置文件Properties的读取.写入与更新操作 博客分类: javase properties  对Jav ...

  6. JS学习随手笔记

    ===================字符串===================== 字符串中间的空格也是要算长度的. 每一个字符都可以返回对应的Unicode 编码 文字的简单加密都是通过char ...

  7. JQuery实现两侧浮动广告

    1.描述 两侧浮动显示广告 2.要点 其实就是一直在变浮动广告距顶部的值. 3.代码 <!DOCTYPE html> <html> <head> <meta ...

  8. Java——异常谜题

    1.谜题36  try和finally语句,代码如下,判断输出 public class Indecisive { public static void main(String[] args) { S ...

  9. Android Quick Tip - ADB over WiFi

    http://stuffandtech.blogspot.jp/2012/03/android-quick-tip-adb-over-wifi.html   MAR 26 Android Quick ...

  10. ubuntu 开启 ftp 服务 | mingming-killer

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...