2014-06-10 9 views
13

में टाइपपीफ एनम स्विफ्ट में मेरे उद्देश्य सी अनुप्रयोग को फिर से लिख रहा है, और मेरे पास enum के बारे में एक सवाल है। उद्देश्य सी में आप करेंगे;स्विफ्ट

typedef enum { 
stopped, 
running 
} TimerState; 

जो त्रुटियों को वापस करता है, Consecutive Declarations on a line must be separated by ‘;’ — Expected declaration — Expected identifier in enum declaration। मैंने इसके बारे में कुछ दस्तावेज पढ़े और पाया कि आप enum से पहले typedef नहीं डालते हैं। तो तेज में मैंने सोचा कि यह होगा:

enum { 
stopped, 
running 
} TimerState; 

लेकिन मैं TimerState साथ क्या करना है पता नहीं है, कि घुंघराले ब्रेसिज़ के अंदर चला जाता है? मुझे क्या करना। कृपया कोई स्मार्ट गधा टिप्पणी नहीं, कृपया। अग्रिम में धन्यवाद।

उत्तर

43

ऐसा नहीं है कि आप स्विफ्ट में एक enum घोषित कैसे करते हैं। आप सी में जैसे मूल्यों को आसानी से सूचीबद्ध नहीं कर सकते हैं। निम्नलिखित तकनीक के साथ सी में एक enum पूरा किया जा सकता है।

enum TimerState { 
    stopped, 
    running 
}; 

तेज़ी से, आपको case कीवर्ड का उपयोग करना होगा।

enum TimerState { 
    case stopped 
    case running 
} 

typedef का सवाल है, वहाँ तेज में एक typealias है।

typealias SomeNewEnum = TimerState 

संपादित करें: आप अपने enum करने के लिए एक कच्चे प्रकार प्रदान करना चाहते हैं, तो आप ऐसा कर सकते हैं।

enum TimerState: Int { 
     case stopped = 0 
     case running // 1 
} 
+0

आपको बहुत बहुत धन्यवाद। –

+0

हाँ, मैंने पहले ही किया है !! मेरे पास वास्तव में एक और सवाल है, क्या हमें उद्देश्यों को जोड़ना है जैसे हम उद्देश्य सी में @ संपत्ति में करते हैं? उदाहरण के लिए संपत्ति (nonatomic, मजबूत) ... हम स्विफ्ट में IBOutlets के लिए यह कैसे करते हैं? मुझे बताया गया कि हमें नहीं करना है लेकिन मुझे नहीं पता। –

+3

@ istx25 आपको टिप्पणी में यहां पूछने के बजाय एक और सवाल पूछना चाहिए। यह अधिक ध्यान और बेहतर जवाब मिलेगा। –