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.
        }
    }];
    
    • 截图:

    原文链接

  • 相关阅读:
    哥也能写KMP了——实现strstr()
    面试归来,感觉无望,下次再战
    Pow(x, n)
    Length of Last Word
    后缀数组应用
    2倍倍增算法构造后缀数组
    跳台阶问题
    求无序数组中第二大的数--快速选择
    单源最短路径问题
    全局下的isFinite
  • 原文地址:https://www.cnblogs.com/adampei-bobo/p/10152807.html
Copyright © 2011-2022 走看看