Object-C KVO的简单概述和示例

KVO(Key Value Observing)是Cocoa的一个重要机制,他提供了观察某一属性变化的方法,极大的简化了代码。这种观察-被观察模型适用于这样的情况,比方说根据A(数 据类)的某个属性值变化,B(view类)中的某个属性做出相应变化。对于推崇MVC的cocoa而言,kvo应用的地方非常广泛。(这样的机制听起来类 似Notification,但是notification是需要一个发送n

...

Object-C KVC的简单概述和示例

KVC的简单概述和示例

1 、概述

KVC是KeyValue Coding的简称,它是一种可以直接通过字符串的名字(key)来访问类属性的机制。而不是通过调用Setter、Getter方法访问。

当使用KVO、Core Data、CocoaBindings、AppleScript(Mac支持)时,KVC是关键技术。

2、如何使用KVC

关键方法定义在:NSKeyValueCodingprotocol

KVC支

...

object-c 自定义对象的归档 NSKeyedArchiver NSKeyedUnarchiver

object-c中自定义对象的归档,实现起来就是使用NSCoding协议,调用其中的两个方法

-(id) initWithCoder:(NSCoder *)aDecoder

-(void) encodeWithCoder:(NSCoder *)aCoder

简单的创建一个user类

User.m

//
//  User.m
//  CustomArchiveDemo
//
//  Created by Du
...

Object-c 深copy 浅copy 自定义copy

深copy指的是对象内的属性的copy,但是深copy的前提是,这个变量是可变的

浅copy值的是只copy对象

自定义copy调用的是NSCopying协议进行的copy

gowhich举了一个例子

第一个例子,看一下copy与retain的区别,来显示一下copy的作用

//retain操作
NSMutableArray *array = [[NSMutableArray alloc] initWith
...

object-c 文件分块写入 NSFileHandle NSFileManager

object-c文件的分块写入,实现大文件的copy,嘿嘿,实现起来是很简单的,终于知道,系统里面copy大文件是啥样子的啦,来看个代码(gowhich说):

//读取大文件,并写入大文件中
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *homePath = NSHomeDirectory();
NSSt
...

Object-C 代理设计模式实例

gowhich演示了一个实例,实现功能很简单

一个人叫做durban,想要找房子,然后正好有个中介,可以帮助durban找房子。

先做创建一个人的实例的准备:

Person.h

//
//  Person.h
//  Agent
//
//  Created by david on 13-11-1.
//  Copyright (c) 2013年 WalkerFree. All rights reserv
...