ReactiveCocoa(RAC)学习
来源:互联网 发布:手机验钞机软件 编辑:程序博客网 时间:2024/06/05 02:00
开发中ReactiveCocoa(RAC)常见用法
RAC监听按钮点击事件
[[self.button rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) { NSLog(@"RAC检测按钮点击");}];//或者:self.button.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) { NSLog(@"RAC检测按钮点击2"); return [RACSignal empty]; //返回空信号}];
RAC监听手势
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];[[tap rac_gestureSignal] subscribeNext:^(id x) { NSLog(@"RAC检测手势");}];self.imageView.userInteractionEnabled = YES;[self.imageView addGestureRecognizer:tap];
RAC遍历数组 / 字典
//遍历数组NSArray *array = @[@1,@3,@55,@76,@56,@45];//1>把数组转换成集合RACSequence array.rac_sequence//2>把集合RACSequence转换RACSignal信号类,array.rac_sequence.signal//3>订阅信号,激活信号,会自动把集合中的所有值,遍历出来。[array.rac_sequence.signal subscribeNext:^(id x) { NSLog(@"RAC遍历数组元素:%@",x);}];//遍历字典NSDictionary *dict = @{@"name":@"stevin",@"location":@"Beijing"};//RACTuple:元组类,类似NSArray,用来包装值.//RACSequence:RAC中的集合类,用于代替NSArray,NSDictionary,可以使用它来快速遍历数组和字典。[dict.rac_sequence.signal subscribeNext:^(RACTuple *x) { //解包元组,会把元组的值,按顺序给参数里面的变量赋值 RACTupleUnpack(NSString *key, NSString *value) = x; NSLog(@"RAC遍历字典键值:%@--%@",key,value);}];
RAC观察值改变
//监听本类属性string值得变化并打印[RACObserve(self, string) subscribeNext:^(NSString *string) { NSLog(@"RAC检测值改变:%@",string);}];
RAC监听UITextField输入
[self.textFieldName.rac_textSignal subscribeNext:^(id x) { NSLog(@"RAC监听TextField输入:%@",x);}];[[self.textFieldName.rac_textSignal filter:^BOOL(id value) { NSString *text = value; //只有当文本框的内容长度大于3,才获取文本框里的内容 return text.length > 3;}] subscribeNext:^(id x) { NSLog(@"RAC检测到输入了长度大于3的内容:%@",x);}];
RAC代替代理Delegate
[[self rac_signalForSelector:@selector(tableViewCell:buttonClick:) fromProtocol:@protocol(TableViewCellDelegate)] subscribeNext:^(id x) { NSLog(@"RAC代理响应成功");}];
RAC观察通知Notification
[[[NSNotificationCenter defaultCenter] rac_addObserverForName:NotificationName object:nil] subscribeNext:^(NSNotification *notification) { NSLog(@"RAC通知响应成功:%@",notification.userInfo);}];
RAC监听方法被调用
[[self rac_signalForSelector:@selector(tableView:numberOfRowsInSection:)] subscribeNext:^(id x) { NSLog(@"tableView:numberOfRowsInSection:被调用!");}];
0 0
- ReactiveCocoa(RAC)学习
- RAC(ReactiveCocoa)学习资源汇总~持续更新
- ReactiveCocoa 学习资源- RAC中文资源列表
- iOS- ReactiveCocoa-RAC-1
- 一、ReactiveCocoa(RAC)配置
- ReactiveCocoa 浅谈RAC-(一)
- ReactiveCocoa之RAC映射(七)
- ReactiveCocoa之RAC过滤(八)
- ReactiveCocoa之RAC合并(九)
- ReactiveCocoa之RAC映射(七)
- ReactiveCocoa之RAC过滤(八)
- ReactiveCocoa之RAC合并(九)
- iOS RAC~ReactiveCocoa 方法作用
- reactiveCocoa学习
- ReactiveCocoa学习
- ReactiveCocoa学习
- ReactiveCocoa学习
- ReactiveCocoa学习
- 谷哥的小弟学后台(17)——JSP(3)
- linux网络编程常用头文件
- 模式匹配——Sunday算法
- 头文件iomanip用法
- 这儿有自学前端开发的吗-
- ReactiveCocoa(RAC)学习
- 算法提高 上帝造题五分钟 (水题)
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- HTTP1.1比HTTP1.0增加的新的状态码
- FZU 2168 防守阵地I (模拟 简单规律)
- css实现三角形
- linux 如何删除文件中的空格和换行符号并保存到新文件中
- CCF之网络延时(java)
- MySQL 如何存储长度很长的数据字段