LoginSignup
10
5

More than 5 years have passed since last update.

ちゃんとNS_ENUMを使おう、という話

Last updated at Posted at 2017-02-09

初めに

Swift3からObjective-C側で定義されたenumを使うときは
NS_ENUM が使われていないとださいことになるのでちゃんと NS_ENUM を使おう。
今更だが。

実際どうなるか

こんな感じで、2通りのパターンでenumを定義してみる。

#import <Foundation/Foundation.h>

typedef enum : NSInteger {
    EnumHogeType1,
    EnumHogeType2,
} EnumHoge;

typedef NS_ENUM(NSInteger, EnumFuga) {
    EnumFugaType1,
    EnumFugaType2
};

すると、使うときにはこうなる。

let hoge: EnumHoge = EnumHogeType1 // .type1とは書けない
let fuga: EnumFuga = .type1        // 逆に、EnumFugaType1 とは書けない

NS_ENUM で定義した方だけがSwift3ぽく使えているのがお分かりいただけるだろうか。

終わりに

ちゃんと NS_ENUM を使おう。

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5