OC-KVO的应用
来源:互联网 发布:卷积神经网络算法 编辑:程序博客网 时间:2024/05/18 00:28
main.m
#import <Foundation/Foundation.h>
#import "Person.h"
#import "Ibokan.h"
int main(int argc,const char * argv[])
{
@autoreleasepool
{
//(1)KVO测试
Ibokan *ib=[Ibokannew];
NSLog(@"%@",ib.frontDesk.someone);
//改变属性值,会自动调用observeValueForKeyPath
// [ib comein:@"daleng"];
}
return0;
}
Person.h
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic,copy)NSString *someone;
@end
Ibok.h
#import <Foundation/Foundation.h>
#import "Person.h"
@interface Ibokan : NSObject
//前台妹妹
@property (nonatomic,strong)Person *frontDesk;
//模拟进来一个人,改变所记录的名字
-(void)comein:(NSString *)name;
@end
Ibok.m
#import "Ibok.h"
@implementation Ibokan
- (instancetype)init
{
self = [superinit];
if (self) {
self.frontDesk= [Person new];
self.frontDesk.someone=@"yang";
//1.注册订阅者
[self.frontDeskaddObserver:selfforKeyPath:@"someone"options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOldcontext:nil];
}
returnself;
}
//2.处理属性改变
//一旦.someone改变,此方法就是调用
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
NSLog(@"==================");
NSLog(@"%@",change);
NSLog(@"新的值:%@",change[@"new"]);
NSLog(@"旧的值:%@",change[@"old"]);
if ([change[@"new"]isEqualToString:@"ladeng"]) {
NSLog(@"校长出来迎接");
}
}
-(void)comein:(NSString *)name
{
self.frontDesk.someone=name;
}
-(void)dealloc
{
[self.frontDeskremoveObserver:selfforKeyPath:@"someone"];
}
@end
- OC-KVO的应用
- OC的KVO模式漫谈
- oc的kvc和kvo
- OC KVO
- OC-KVO
- OC-KVO
- OC-KVO
- OC - KVO
- OC KVO
- KVO机制的应用
- KVO的应用
- oc中KVC,KVO,通知的使用
- OC循环渐进:KVO的使用
- OC的KVC和KVO机制
- OC学习之KVO
- OC-KVC/KVO
- oc中kvc kvo
- oc 语法 kvo
- 每周前端知识整理(15.09.06)
- 求集合并集
- Arcgis For Android实现比例尺
- 黑马程序员 java socket用tcp与udp实现
- iOS - 邮件 短信 通讯录
- OC-KVO的应用
- akka---actor模型
- Android服务器与客户端数据交互(Http协议)
- 深入浅出Mysql(一)
- Json,List,Map的数据格式详解。
- QT读取文件夹大小
- 机器学习(1)PLA
- 负数的原码、补码
- 各种内部排序方法的比较