美文网首页
位移枚举

位移枚举

作者: Tianfu | 来源:发表于2017-02-21 11:09 被阅读0次

使用场景:同一次操作有多个选项,可以同时多选同时禁用
摘取一段定义好的iOS代码


typedef NS_OPTIONS(NSUInteger, NSKeyValueObservingOptions) {
    NSKeyValueObservingOptionNew =0x01,    // = 1 << 0    , 1
    NSKeyValueObservingOptionOld =0x02,    // = 1 << 1     , 2
    NSKeyValueObservingOptionInitial NS_ENUM_AVAILABLE(10_5,2_0) =0x04,     // = 1 << 2    , 4
    NSKeyValueObservingOptionPrior NS_ENUM_AVAILABLE(10_5,2_0) =0x08    // = 1 << 3    , 8
};

写一个方法,需要选择两种特性来实现


- (void)chooseTwoCharacter:(NSKeyValueObservingOptions)options {
    if (options == 0) {
        return;
    }
    else if (options & NSKeyValueObservingOptionNew == 
NSKeyValueObservingOptionNew) {
        NSLog(@"choose NSKeyValueObservingOptionNew");
    }
    else if (options & NSKeyValueObservingOptionNew == 
NSKeyValueObservingOptionOld) {
        NSLog(@"choose NSKeyValueObservingOptionOld");
    }
    else if (options & NSKeyValueObservingOptionNew == 
NSKeyValueObservingOptionInitial) {
        NSLog(@"choose NSKeyValueObservingOptionInitial");
    }
    else if (options & NSKeyValueObservingOptionNew == 
NSKeyValueObservingOptionPrior) {
        NSLog(@"choose NSKeyValueObservingOptionPrior");
     }
}

那么我们在调用的时候可以将需要选择的枚举值按位或,或者按十进制相加

<code>
NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld; // 0x0011
[self chooseTwoCharacter:options];
NSKeyValueObservingOptions options2 = NSKeyValueObservingOptionNew + NSKeyValueObservingOptionOld; // 3
[self chooseTwoCharacter:options2];
</code>

相关文章

  • 位移枚举

    位移枚举和普通枚举的区别位移枚举可以传递多个参数,普通的枚举只能传递单个参数 举个?在SDWebimage里有的地...

  • Swift&OC位移枚举区别

    1、Swift 位移枚举写法 2、ObjC位移枚举写法 相比之下ObjC更加简单明了。

  • 位移枚举

    位移枚举 C语言枚举定义 苹果创建枚举的定义方式

  • 位移枚举

    枚举的其中一种方式:位移枚举,直接上代码,看完基本就懂了 写一个方法: 在viewDidLoad方法中调用本方法:

  • 位移枚举

    位移枚举 一. OC中常见的三种枚举 C语言枚举 // C语言枚举 typedef enum : NSUInteg...

  • 位移枚举

  • 位移枚举

    使用场景:同一次操作有多个选项,可以同时多选同时禁用摘取一段定义好的iOS代码 写一个方法,需要选择两种特性来实现...

  • 位移枚举

    //第一种写法typedef enum{DemoTypeTop,DemoTypeBottom,}DemoType;

  • 位移枚举

    ![Uploading 2B88CA96-A66A-4BE8-AD65-456C8CDB8DF3_547667.p...

  • 位移枚举

网友评论

      本文标题:位移枚举

      本文链接:https://www.haomeiwen.com/subject/bjwywttx.html