zoukankan      html  css  js  c++  java
  • ReactiveCocoa的一些使用

    作为一名iOS开发者, 你写的每一行代码几乎都是对某些事件的反馈:点击button、接收到网络信息、 一个属性的改变(通过KVO监测) 或者 通过CoreLocation监听用户所在位置的变化 以上等等都是很好的例子。然而,这些事件都有不同的编码方式,如: action、delegate、KVO、回调等。ReactiveCocoa为事件定义了标准的接口,从而可以使用一些基本工具来更容易的连接、过滤和组合。

    UIControl+BlocksKit 刚开始以为实现action的方法也是链式编程的一部分 blockskit 确实还是不错,

    - (id)initWithHandler:(void (^)(id sender))handler forControlEvents:(UIControlEvents)controlEvents;

    @property (nonatomic) UIControlEvents controlEvents;

    @property (nonatomic, copy) void (^handler)(id sender);

    block的封装 在方法的使用中 解决一些问题 项目中也使用了不少 

     [self.closeButton bk_addEventHandler:^(id sender) {

            [self resignTitleResponder];

            //        [self closeAction];

            [self.navigationController popViewControllerAnimated:YES];

        } forControlEvents:UIControlEventTouchUpInside];

        

        [self.locationButton bk_addEventHandler:^(id sender) {

            [self resignTitleResponder];

            [self.store openLocation:^(NSString *title) {

                [self.locationButton setTitle:title forState:UIControlStateNormal];

            }];

        } forControlEvents:UIControlEventTouchUpInside];

        

        [self.coverImageView setImageWithUrl:[NSURL URLWithString:@""] placeholderImage:[UIImage imageNamed:@"addPictureBgImage"] tapBlock:^(id obj) {

            [self resignTitleResponder];

            [self uploadHeaderImage];

        }];

    - (void)uploadHeaderImage {

        if (!self.imagePickerManager) {

            self.imagePickerManager = [Vmeet_ImagePickerManager newVmeet_ImagePickerManager];

            self.imagePickerManager.imgType = @(UploadImageType_RecruitCover);

        }

        [self.imagePickerManager showImagePickerWithViewContorller:self allowsEditing:YES singleBlock:^(VmeetImage *image) {

            self.uploadImage = image;

            self.coverImageView.image = image.image;

        } block:^(NSArray<VmeetImage *> *imageModels) {

            

        }];

    }

        

  • 相关阅读:
    【转】VC 隐藏模块、MFC 改变窗口类名
    【转】Reason: The specified virtual disk needs repair.
    关于CreateProcess函数一些经验
    利用NtQuerySystemInformation函数遍历进程,遍历线程,获取线程挂起或运行状态
    uefi安装win7,deepin15双系统后grub没有windows选项
    X64下的虚拟地址到物理地址的转换
    WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)
    windows7内核分析之x86&x64第二章系统调用
    使用VS Code写PHP并进行调试
    使用CreateProcess创建新的process 并返回process运行结束返回值
  • 原文地址:https://www.cnblogs.com/tangyuanby2/p/6144315.html
Copyright © 2011-2022 走看看