objective-c - ios , 关于多 参数 枚举 的实现?
漂亮男人
漂亮男人 2017-05-02 09:19:11
0
1
734

我想实现 可以 传入 多参数枚举值的方法,例如

,请教一下,方法里面的逻辑判断

漂亮男人
漂亮男人

全員に返信(1)
阿神

コードに示されている UIRectCornerTopLeft と UIRectCornerTopRight は実際には列挙ではなく、bitmask の定義は次のとおりです。 リーリー 按位掩码(bitmask),它的定义如下所示:

typedef NS_OPTIONS(NSUInteger, UIRectCorner) {
    UIRectCornerTopLeft     = 1 << 0,
    UIRectCornerTopRight    = 1 << 1,
    UIRectCornerBottomLeft  = 1 << 2,
    UIRectCornerBottomRight = 1 << 3,
    UIRectCornerAllCorners  = ~0UL
};

按位掩码(NS_OPTIONS)的语法和枚举(NS_ENUM)相同,但编译器会将它的值通过位掩码 | 组合在一起。

编辑:

比如对于上面的 UIRectCorner 这个 NS_OPTIONS,按照你的代码,你传入的是 UIRectCornerTopLeft | UIRectCornerTopRight ビットごとのマスク (NS_OPTIONS) の構文は列挙 (NS_ENUM) の構文と同じですが、コンパイラーはビットマスク | を通じてその値を結合します。

編集:

🎜たとえば、上記の UIRectCorner の NS_OPTIONS の場合、コードによれば、渡すのは UIRectCornerTopLeft であり、処理コードはおおよそ次のようになります。 リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート