In diesem Fall sollte die einfache Lösung von Antonio verwendet werden. Ich würde das gerne noch ein wenig diskutieren. Wenn wir versuchen, eine Instanz von 'NSMutableOrderedSet'
in einer 'for'
-Schleife aufzuzählen, wird sich der Compiler beschweren:
error: Typ 'NSMutableOrderedSet' entspricht nicht dem Protokoll 'SequenzTyp'
Wenn wir
schreiben %Vor%Der Compiler schreibt es in etwa so um:
%Vor% 'NS(Mutable)OrderedSet'
hat keine 'generate()'
-Methode, d. h. es entspricht nicht dem 'SequenceType'
-Protokoll. Das können wir ändern. Zuerst brauchen wir einen Generator:
Jetzt können wir diesen Generator verwenden, um 'NSOrderedSet'
konform zu 'SequenceType'
:
'NS(Mutable)OrderedSet'
kann jetzt in einer 'for'
Schleife verwendet werden:
Wir könnten 'CollectionType'
und 'MutableCollectionType'
(letztere nur für 'NSMutableOrderedSet'
) weiter implementieren, damit 'NS(Mutable)OrderedSet'
sich wie die Standard-Bibliothekssammlungen von Swift verhält.
Ich bin mir nicht sicher, ob der obige Code den Best Practices entspricht, da ich immer noch versuche, Details zu all diesen Protokollen zu verstehen.
Tags und Links ios generics swift nsorderedset