Die Erstellung eines Swift Array entspricht einem Protokoll

8

Nehmen wir an, dass bestimmte Elemente in Feed vorkommen können, solange sie die erforderlichen Eigenschaften implementieren, die vom Protokoll Feedable definiert werden. Lassen Sie uns auch sagen, dass das Photo -Objekt Feed-würdig ist:

%Vor%

Kann man sagen, dass ein Array dieser Fotos auch Feedable ist?

%Vor%

Oder brauche ich immer eine Art Wrapper-Objekt, zB PhotoAlbum , um Feedable ?

zu entsprechen

Bearbeiten

Um erneut zu iterieren, war ich neugierig, ob ich nur Arrays von Photo objects Feedable erstellen kann. % Co_de% eines beliebigen Inhaltstyps Array nicht machen, kein Array von Feedable s selbst machen Feedable (beide werden unten als Lösungen angeboten, wenn Sie das brauchen).

Mit anderen Worten, eine Lösung (die ich bezweifle, existiert) würde mir erlauben, eine Variable vom Typ Feedable mit den folgenden Endpunkten zu definieren:

%Vor%

Vielleicht dieser Kern (der natürlich nicht kompiliert wird) zeigt die Absicht deutlicher.

    
Ben Packard 31.03.2016, 02:59
quelle

3 Antworten

3

Wenn es ein Array von Photo und Video gäbe, was würdest du gerne sein?

1. Jedes Element verhält sich so, wie es ist.

%Vor%

2.Das gesamte Array wird als "Video" ausgeführt.

%Vor%     
Lumialxk 31.03.2016 03:46
quelle
0

Ich denke, das ist derzeit nicht möglich. In meinem Projekt habe ich das gleiche Problem mit einem ModelProducer.

%Vor%

Ich verwende ModelType als Ghost-Protokoll. Das Problem ist, dass ich keinen Modellproduzenten erstellen kann, der mehrere ModelType s erzeugt, aus demselben Grund, den Sie entdeckt haben. Die Lösung in diesem Fall war die folgende:

%Vor%

Dies ist von Anfang an flexibler. Ich werde die optionalen Variablen loslassen und Einzelmodellhersteller haben nur ein Element im Array. Vielleicht können Sie einen ähnlichen Ansatz verwenden.

    
fruitcoder 18.11.2016 10:28
quelle
-4

Ich habe es nicht auf dem Spielplatz versucht, aber vielleicht kannst du einfach ein Array von Feedable machen:

%Vor%

Dann wäre alles, was das Feedable-Protokoll implementiert, im Array erlaubt. Wenn Sie nur ein Foto-Array möchten, können Sie Ihr Photo-Objekt immer noch zu einem FeedablePhoto-Objekt ableiten.

Probieren Sie dies in Playground aus, anstatt es zu deaktivieren, ohne es zu testen. Ernsthaft 3 Downvotes ohne irgendwelche Gründe und Erklärungen ...

%Vor%     
Mikael 31.03.2016 03:44
quelle

Tags und Links