zoukankan      html  css  js  c++  java
  • ReactiveCocoa 监听枚举类型enumerate 或者 NSInteger类型

    • 因为刚用RAC库, 不知如何通过signals监听枚举类型UIKtyboardType然后求助强大的Stack Overflow终于两个小时后一位国际友人回答了这个问题,经过测试正确感谢.

    • 代码如下.h文件

    #import <UIKit/UIKit.h>
    @interface XBXMLoginTextField : UIView
    @property (nonatomic, assign) UIKeyboardType keyboardType;
    @end
    
    • .m文件
    - (instancetype)init {
        if (self = [super init]) {
    
            [RACObserve(self, keyboardType) subscribeNext:^(UIKeyboardType x) {
    
            }];
        }
        return self;
    }
    
    • 这种做法编译都通不过报错Incompatible block pointer types sending 'void (^)(UIKeyboardType)' to parameter of type 'void (^ _Nonnull)(id _Nullable __strong)'

    • 正确做法如下:

    • 国际友人的意思大概是: 你得用RAC自己特有的监听数据类型的NSNumber类型,然后自己转换成integer类型才可以.感谢danielhadar

    [RACObserve(self, keyboardType) subscribeNext:^(NSNumber *keyboardType) {
        NSLog(@"%ld", (long)keyboardType.integerValue);
    
        // Or any other user of keyboardType.integerValue, such as:
        if (keyboardType.integerValue == UIKeyboardTypeURL) {
            // Do stuff.
        }
    }];
    
    • 截图:

    原文链接

  • 相关阅读:
    IntPutStream字节输入流
    FileOutPutStream
    FileOutPutStream 一次写多个字节
    OutPutStream
    FileFilter 2
    FileFilter
    Selenium请求过快 解决方法
    Selenium 定位元素的方法
    Selenium自动化环境安装
    Appium定位元素方法
  • 原文地址:https://www.cnblogs.com/adampei-bobo/p/10152807.html
Copyright © 2011-2022 走看看