2016-05-12 16 views
-2

Wenn ich c-a gesetztWie Wert auf [any] zuweisen

var a: [Any] 
var c: Array<PostCategory> 

Fehler angezeigt:

nicht Wert vom Typ 'Array' zu erwarten Argument Typ umwandeln kann [jeder]

wie das Problem zu lösen?

+0

Wo findet die eigentliche Aufgabe statt? – Alexander

+1

Mögliches Duplikat von [Warum nicht \ [SomeStruct \] in \ [Beliebige \] umwandelbar?] (Http://stackoverflow.com/questions/37188580/why-arent-somestruct-convertible-to-any) – Hamish

Antwort

0

Die Fehlermeldung ist ein wenig irreführend, sondern versuchen, das Array zu initialisieren, bevor es die Zuordnung:

var c: Array<PostCategory> = [] 

... oder ...

var c = Array<PostCategory>() 
0

Ich wette, Ihr PostCategory ein struct ist. Offenbar sind struct-Arrays nicht in ein Any-Array konvertierbar. Das ist komisch, weil alle Typen dem Any-Protokoll entsprechen.

Wenn Sie stattdessen die PostCategory in eine class ändern, sollte es gut funktionieren. Möglicherweise müssen Sie jedoch einen neuen Initialisierer für die Klasse erstellen, da Klassen nicht denselben Standardinitialisierer wie eine Struktur bereitstellen.

+0

Ja , PostCategory ist eine Struktur, gibt es irgendwas Äquivalent von Any für struct –