2016-05-26 11 views
0

私はSwiftに以下のコードを書いています。これをObjective-Cに変換するにはどうすればよいですか? (はい、スウィフトのObjective-Cへ);)Obj-Cのプロパティにenum値を代入

class PopAnimator: NSObject, UIViewControllerAnimatedTransitioning { 

    enum PopTransitionMode: Int { 
     case Present, Dismiss 
    } 

    var transitionMode: PopTransitionMode = .Present 

} 

私はOBJの-Cに次のように試してみた、私の財産にPopTransitionModeの値型を割り当てる方法を確認していません。

// .h 
typedef NS_ENUM(NSInteger, PopTransitionMode) { 
    Present, 
    Dismiss 
}; 
@interface PopAnimator : NSObject <UIViewControllerAnimatedTransitioning> 
@property (nonatomic, assign) PopTransitionMode transitionMode; 
@end 


// .m 
@implementation PopAnimator 

-(id)init { 

    if (self = [super init]) { 

     _transitionMode = ??? 

    } 


    return self; 
} 

@end 

答えて

2

列挙値を使用できます。このような

typedef NS_ENUM(NSInteger, PopTransitionMode) { 
    PopTransitionModePresent, 
    PopTransitionModeDismiss 
}; 

初期化:このようなより良い命名、列挙型で

// if the initializer takes a param 
- (id)initWithTransitionMode:(PopTransitionMode)transitionMode { 
    self = [self init]; 
    if (self) { 
     _transitionMode = transitionMode; 
    } 
    return self; 
} 

// OR, if the initializer hard-codes a param 
- (id)init { 
    self = [super init]; 
    if (self) { 
     _transitionMode = PopTransitionModeDismiss; 
    } 
    return self; 
} 
+0

おかげで@danh!私はそれを '_transitionMode = .Dismiss'と宣言しようとしていて、Obj-Cではenumのドット構文が利用できないことを忘れていました。 – chicobermuda

関連する問題