Ich versuche das Swift-Äquivalent von initWithContentsOfFile:
auf einem Array
zu verwenden. Die Dokumentation besagt, dass das Äquivalent convenience init(contentsOfFile aPath: String!)
Ich habe versucht, dies mit dem folgenden Code aufzurufen:
%Vor%Der Compiler sagt mir jedoch, dass er keine Überladung finden kann, die die gelieferten Argumente akzeptiert. Was vermisse ich?
@Leo Natan war wirklich nah dran, aber die Art, die für mich funktionierte, war:
%Vor%Ich konnte dann auf die Elemente zugreifen:
%Vor%Hier ist, was für mich funktioniert hat. Ich habe es in der Beta-Version von Xcode verifiziert. Im Gegensatz zu den anderen Antworten wollte ich ein natives getipptes Swift-Array mit den Ergebnissen, also habe ich ein paar zusätzliche Schritte unternommen. (@ wayne-hartmans Antwort kann intuitiver sein, wenn Sie nicht wissen, was Sie in Ihrem Plist haben oder kein typisiertes Array wollen.) Es erforderte, Typen auf eine Weise zu erzwingen, die ich nicht erwartet hatte.
Mein Wörterbuch hat Wörterbücher auf der ersten Ebene und Zeichenfolgen auf der zweiten Ebene, der Code sollte leicht für andere Typen angepasst werden können.
%Vor% Es funktioniert nicht (oder zumindest konnte ich es nicht funktionieren) ohne den Zwischenschritt von untypedArray
.
@ leo-natan's kompiliert nicht für mich, auch wenn es so aussieht, als ob es für mich wäre. Ich glaube, dass der Compiler das NSArray nicht automatisch in ein typisiertes Swift-Array direkt ohne den Zwischenschritt, den ich hinzufügte, umwandeln kann. Es würde mich nicht überraschen, wenn sein Code in einer zukünftigen Version funktioniert.