2015-09-28 23 views
7

मैं इस प्रकार एक और वर्ग के अंदर परिभाषित enum के एक खाली सरणी घोषित करने के लिए कोशिश कर रहा हूँ, और निम्न त्रुटि हो रही है:स्विफ्ट: नेस्टेड enum प्रकार के खाली सरणी नहीं बना सकता

class OuterClass { 
    enum MyEnum { 
     case ThingOne 
     case ThingTwo 
    } 
} 

// Error: Invalid use of '()' to call a value of non-function type '[OuterClass.MyEnum.Type]' 
var emptyEnumArray = [OuterClass.MyEnum]() 
emptyEnumArray.append(.ThingOne) 

हालांकि, मैं घोषणा कर सकते हैं ,

// No errors 
var emptyEnumArray: [OuterClass.MyEnum] = [] 

यह केवल एक मुद्दा जब enum अन्य वर्ग के अंदर परिभाषित किया गया है प्रतीत होता है के रूप में इस काम करता है:: सरणी के रूप में कोई समस्या नहीं के साथ इस प्रकार

enum OtherEnum { 
    case ThingOne 
    case ThingTwo 
} 

var emptyArrayTwo = [OtherEnum]() 
emptyArrayTwo.append(.ThingTwo) 

कोई भी विचार क्यों पहला स्निपेट काम नहीं करता है? क्या यह एक भाषा बग है?

+0

इसे स्वयं देखा, और एक बग हां जैसा लगता है। क्या आपने इसे कंपाइलर चेतावनियों के साथ बंद करने का प्रयास किया है? –

उत्तर

6

मुझे लगता है कि यह अभी एक स्विफ्ट बग है। यह भी काम करता है।

var emptyEnumArray = Array<OuterClass.MyEnum>() 

प्रश्न मुझे बस a question in apple Swift tutorial पर याद करता है।

संबंधित मुद्दे