2015-09-28 11 views
7

Ich versuche, ein leeres Array von Enum innerhalb einer anderen Klasse definiert zu erklären, wie folgt, und ich erhalte die folgende Fehlermeldung:Swift: Kann nicht leeres Array von verschachtelten Aufzählungstyp erstellen

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) 

Allerdings kann ich erklären das Array wie folgt kein Problem:

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

Dies scheint nur ein Problem zu sein, wenn die enum innerhalb einer anderen Klasse definiert ist, wie dies funktioniert:

enum OtherEnum { 
    case ThingOne 
    case ThingTwo 
} 

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

Irgendwelche Gedanken darüber, warum das erste Snippet nicht funktioniert? Ist das ein Sprachfehler?

+0

sah es mir selbst, und scheint viel wie ein Fehler ja. Haben Sie versucht, es mit deaktivierten Compiler-Warnungen auszuführen? –

Antwort

Verwandte Themen