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

可供配置的选项根据属性类型的不同有所变化,并不是每一种属性都能配置下列选项
- Transient:勾选该选项,表示该属性不写入“持久化存储区”,这听起来很奇怪,但有时候,只需要把特性留在托管对象上下文就行了。
- Opitional:optional特性并不一定要有值。所有特性再刚创建的时候都是optional特性。如果某个特性不是optional特性,那么它在写入存储区的时候必须要具备有效的值才行。
- Indexed:系统会优化Indexed特性以提高搜索效率,但是缺点是要在存储区占用更多的空间。并且这个空间的大小根据索引值的大小而定。
- Validatioin:可以使用Validation中的各个选项来阻止不合理的数据存入持久化存储区。不同的数据类型都有各自不同的Validation选项。比如数值的最小值、最大值,Date的日期范围,String类型的字符串长度。无效的值可以出现在托管对象上下文中,只要在save:之前修改掉就好。一般来说,在控件失去焦点时进行验证。
- Reg.Ex.:正则表达式(Regular Expression)的缩写。同样,托管对象中的值必须符合正则表达式才能存入持久区。
- Default:除了可变类型和二进制类型数据外,其它类型都可以具有默认值。考虑到数据库处理null的方式,数值应该给定默认值,字符串要看情况,但是日期类型无法设置为now。
- Allows External Storage:开启该选项之后,二进制数据可以存放在数据库外面。启用之后,Core Data会把数据量超过1M的属性值保留在SQLite持久化存储区之外。
- Index in Spotlight:这个选项不会影响iOS程序,它的作用是把基于Core Data 的Mac应用程序同Spotlight集成起来。
- Store in External Record File:启用该选项之后,系统会把持久化存储区里的数据复制成XML格式,并保存在存储区外。
- Name:如果某个属性的类型为可变类型,那么名称这一栏中填写的名称将会用作NSValueTransformer子类的名称,而这个子类会知道如何在任意的类与NSData之间转换。
下面来修改程序
- 勾选name属性的Indexed选项
- 将name属性的Default Value 设置为 New Item
- 将quantity属性的默认值设置为 1。
- 将listed属性的默认值设置为YES。
- 将collected属性的默认值设置为NO。
2.7. 属性的各种设置选项(Core Data 应用程序实践指南)的更多相关文章
- 2. 托管对象数据模型的基本知识(Core Data 应用程序实践指南)
第一章的例子配置好了持久化存储区.持久化存储协调器.托管对象上下文.但是还没有对象图,本章要介绍托管对象模型的基础知识,并配置范例程序的对象图. 2.1. 托管对象模型是什么 托管对象模型是一种数据结 ...
- Core Data 应用程序实践指南(Core Data 应用程序实践指南)
译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...
- 1.1.Core Data是什么(Core Data 应用程序实践指南)
Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...
- 3.2. 添加模板版本(Core Data 应用程序实践指南)
为了不像3.1那样崩溃,修改模型之前先创建新的模型版本.添加之后,会生成一个新的xcdatamodel文件,并且跟原来的内容完全一样,这有意思了,但是不要删除原来旧版的模型.旧的模型有助于把原来持久化 ...
- 1.2.Core Data 的适用场合(Core Data 应用程序实践指南)
如果应用程序要保存的设置数据太多,以致NSUserDefaults及“属性列表“(property list)这种简单的存储方案无法应付.不需要再"重新发明轮子"(reinvent ...
- 3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)
持久化存储协调器会试着用新版的模板打开原来的持久化存储区,但是那是旧的模板,旧的格式,当然会出错.现在要做的就是迁移现有的持久化数据区,以便跟新模型匹配. 怎么进行迁移呢? 在什么时候进行迁移? 在向 ...
- 2.6. 类型(Core Data 应用程序实践指南)
单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber. 小数:涉及货币时,建议设置为小数(decim ...
- 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
项目创建时会有 “Use Core Data" ,但是,有时没有勾选这个选项,那么就要手动链接Core Data Framework. 选中 Grocery Dude Target Gene ...
- 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...
随机推荐
- HDU 5170 GTY's math problem
数学题,a的b次方和c的d次方都很大,直接判断是做不出来的. 如果我们能找到一个函数F(x)是单调的,而F(X)的值又比较好算,那么可以通过比较F(X)的大小来判断自变量的大小. 令F(X)=log( ...
- Cannot find PHPUnit in include path phpstorm
This is the way to do it without using composer, and using your global phpunit.Phpunit now comes wit ...
- USACO 1.3.1
题目链接:USACO 1.3.1 简单的贪心,将cent从小到大排序. /* ID:wang9621 PROG:milk LANG:C++ */ #include <iostream> # ...
- JAVA基础--IO流
数据流的方向: 输入流, 输出流 数据单位: 字节流, 字符流 功能不同: 节点流, 处理流 JDK提供的4种抽象流: 输入流: 字节流(InputStream), 字符流(Reader) , 站在程 ...
- Counting Intersections
Counting Intersections Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...
- Flash CS 自定义组件
2012年的时候,做了一些研究,可以后来没有去整理,没有去用到项目里头,现在把这些东西都放出来纪念一下,也给有需要的人作为参考. 基本知识: Flash使用基本知识与ActionScript 3.0的 ...
- SQL 复习二(数据查询语言)
1.1 数据查询语言 DQL就是数据查询语言,数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端. 语法: SELECT selection_list /*要查询的列名称*/ FR ...
- 将USBASP改造成STK502编程器(转)
源:将USBASP改造成STK502编程器 现在淘宝上还有不少USBasp或者USBisp的51/AVR编程器,它们使用了开源的USBasp硬件,以及PROGISP软件或者其它一些下载软件.其实我们可 ...
- HDU 5620 KK's Steel
想了一下发现是斐波那契数列.....水题 #include <stdio.h> #include <algorithm> #include <string.h> # ...
- Section 1.1
Your Ride Is Here /* PROG:ride LANG:C++ */ #include <iostream> #include <cstdio> #includ ...