検索

ホームページ  >  に質問  >  本文

objective-c - ios , 关于多 参数 枚举 的实现?

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

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

漂亮男人漂亮男人2754日前728

全員に返信(1)返信します

  • 阿神

    阿神2017-05-02 09:21:11

    コードに示されている 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
  • キャンセル返事