NS_ENUM与NS_OPTIONS区别与说明
我们根据两种定义常见的使用场景来说明其区别。
NS_ENUM
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone,//默认从0开始
UIViewAnimationTransitionFlipFromLeft,
UIViewAnimationTransitionFlipFromRight,
UIViewAnimationTransitionCurlUp,
UIViewAnimationTransitionCurlDown
};
说明:
NS_ENUM 的第一个参数是用于存储的新类型的类型。在64位环境下,UIViewAnimationTransition和 NSInteger 一样有8bytes长。你要保证你给出的所有值能被该类型容纳,否则就会产生错误。第二个参数是新类型的名字。大括号里面和以前一样,是你要定义的各种值。
一般枚举项加上后缀以视区别,大括号中的枚举项的值默认是从0开始连续递增,可自定义,若是定义了枚举项其中一项的值后面依次在它的前一项的值上加1,如这样:
typedef NS_ENUM(