3

Objective-Cクラスには、次の形式の列挙型を使用する@privateivarがあります。

typedef NS_ENUM(NSInteger, PlayerStateType) {
    PlayerStateOff,
    PlayerStatePlaying,
    PlayerStatePaused
};

ただし、この定義はそのクラスのヘッダーファイルにインクルードします(使用されているため)。これにより、タイプが事実上公開されますが、これは私が意図したものではありません。この列挙型をプライベートにするにはどうすればよいですか?

4

2 に答える 2

6

答えとして私のコメントを追加します。

これを.mクラスに追加して、インポート中に他のクラスと共有されないようにすることができます。インポートステートメントの下に追加するだけです。このタイプのパラメータがこの.mクラスでのみ使用されている場合は、この.mファイルでも宣言できます。

.mクラスは次のようになります。

typedef NS_ENUM(NSInteger, PlayerStateType) {
    PlayerStateOff,
    PlayerStatePlaying,
    PlayerStatePaused
};

@interface ViewController () //Use an extension like this in .m class

@property (nonatomic) PlayerStateType param;

@end
于 2012-11-19T06:54:04.123 に答える
1

.mファイルで定義し、.mファイルのコントローラーカテゴリでprivareivarを宣言します。コントローラのカテゴリについて知るには、.hファイルと.mファイルの@interface定義の違いを見てください。

于 2012-11-19T06:49:09.823 に答える