设置方式:[self setValue:aName forKey:@"name"];
等同于: self.name = aName;
1)id数据类型:是所有对象通用的数据类型
2)table快捷键切换形参
3)NSNumber
4)%@:输出对象类型
5)(void *)万能指针
| 位或
|| 逻辑或
context 上下文 本质上就是传值
传值的方式有:单例,通知,
通知
作用:用于对象之间传递信息
一般用name唯一的标识一个通知
通知的特性:
1)一对多;
2)接受者必须时存在的对象
通知的发送是通过通知中心来发送的,而不是发送者直接发送
NSNotification:
1、获得通知中心对象
NSNotificationCenter*nc = 【NSNotificationCenter defaultCenter】;
2、监听通知
【center addObserver :监听者 selector:须执行的方法 name:所监听者通知的名称 object:通知发送者】;
3、通知中心发布消息
【center PostNotificationName:@“国王万岁”object:某人】;
4.移除监听中心
for example:
-(void)test:(NSNtification*)n
{
NSLog(@"name:%@ object:%@ userInfo:%@",【n name】,【n object】,【n userInfo】);
}
King *king = 【【King aloc】init】;
Farmer *farmer = 【【Farmer alloc】init】;
NSNotificationCenter *center = 【NSNotificationCenter defaultCenter】;
【center addObserver:farmer selector:@selector(test) name:@"国王万岁" object:king】;
【center postNotificationName:@"国王万岁" object:king】;
【center removeObserver:farmer】;
【king release】;
【farmer release】;
7-11作业
kallen: 16:48:03
1、定义一个学生类,其中包含学生姓名和学生年龄属性,用KVC的方式去访问、修改学生的姓名和年龄属性。比较其和属性访问的异同。
2、利用上面的学生类,监听当学生的年龄属性被修改后,输出这个被修改后的年龄。
3、建King、Worker、Farmer类,由King发送一个自定义通知Worker和Farmer类监听通知,通知内容为打印“国王万岁”。