1. 基本概念
MODEL
主要是英文文档里面经常出现的一些概念,讲解一下,方便英文文档的阅读。
IOS应用开发是遵循MVC设计模式的,Cocoa框架用Object Modeling的规则来规范一个Model的实现。
ObjectModeling有如下几个概念的规定:
Entity:表示持有数据的一个实体
Property实体中的成员,分为Attribute和:Relationship
Attribute:基本类型的成员,比如:数字、NSString。
Relationship:指向其它Entity的关系型成员,它又有to 1Relationship和to manyRelationship的区别。
AccessorMethod:getter,setter。
举例:
如下是一个部门和员工关系的Model
部门:Department
部门名称(NSString) |
成员(NSArray) |
部长(Employee) |
MIC |
(所有成员) |
老王(一个成员) |
MIB |
|
|
员工:Employee
名字(NSStirng) |
所属部门(Department) |
小王 |
MIC |
|
|
使用KVC、KVO的优势
通过规定了一组通用的Cocoa命名法则、调用规则等,实现了如下功能:
² 使用一对高度规范化的访问方法,获取以及设置任何对象的任何属性的值。
² 通过继承一个特定的方法,并且指定希望监视的对象及希望监视的属性名称,就能在该对象的指定属性的值发生改变时,得到一个“通知”(尽管这不是一个真正意 义上的通知),并且得到相关属性的值的变化(原先的值和改变后的新值)。
² 通过一个简单的函数调用,使一个视图对象的一个指定属性随时随地都和一个控制器对象或模型对象的一个指定属性保持同步。
2. KVC
2.1 概述
KVC是KeyValue Coding的简称,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。而不是通过调用Setter、Getter方法访问。
当使用KVO、Core Data、CocoaBindings、AppleScript(Mac支持)时