美文网首页
Swift&OC位移枚举区别

Swift&OC位移枚举区别

作者: 小王在努力 | 来源:发表于2020-05-20 14:12 被阅读0次

1、Swift 位移枚举写法

public struct ATRefreshOption :OptionSet {
    public let rawValue : Int
    public init(rawValue: Int) {
        self.rawValue = rawValue
    }
    public static var none          : ATRefreshOption{return ATRefreshOption(rawValue: 0)}
    public static var header        : ATRefreshOption{return ATRefreshOption(rawValue: 1<<0)};
    public static var footer        : ATRefreshOption{return ATRefreshOption(rawValue: 1<<1)};
    public static var autoHeader    : ATRefreshOption{return ATRefreshOption(rawValue: 1<<2)};
    public static var autoFooter    : ATRefreshOption{return ATRefreshOption(rawValue: 1<<3)};
    public static var defaultHidden : ATRefreshOption{return ATRefreshOption(rawValue: 1<<4)};
    public static var defaults      : ATRefreshOption{return ATRefreshOption(rawValue: header.rawValue|autoHeader.rawValue|footer.rawValue|defaultHidden.rawValue)};
}

2、ObjC位移枚举写法

typedef NS_ENUM(NSUInteger, ATRefreshOption) {
    ATRefreshNone         = 0,
    ATHeaderRefresh       = 1 << 0,
    ATFooterRefresh       = 1 << 1,
    ATHeaderAutoRefresh   = 1 << 2,
    ATFooterAutoRefresh   = 1 << 3,
    ATFooterDefaultHidden = 1 << 4,
    ATRefreshDefault = (ATHeaderRefresh | ATHeaderAutoRefresh | ATFooterRefresh | ATFooterDefaultHidden),
};

相比之下ObjC更加简单明了。

相关文章

  • Swift&OC位移枚举区别

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

  • 位移枚举

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

  • 位移枚举

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

  • 位移枚举

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

  • 位移枚举

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

  • 位移枚举

  • 位移枚举

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

  • 位移枚举

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

  • 位移枚举

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

  • 位移枚举

网友评论

      本文标题:Swift&OC位移枚举区别

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