Swift entspricht "initWithContentsOfFile:"?

8

Ich versuche das Swift-Äquivalent von initWithContentsOfFile: auf einem Array zu verwenden. Die Dokumentation besagt, dass das Äquivalent convenience init(contentsOfFile aPath: String!)

ist

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?

    
Wayne Hartman 10.06.2014, 16:13
quelle

4 Antworten

4

@Leo Natan war wirklich nah dran, aber die Art, die für mich funktionierte, war:

%Vor%

Ich konnte dann auf die Elemente zugreifen:

%Vor%     
Wayne Hartman 10.06.2014 18:00
quelle
3

Sie initialisieren ein Swift-Array, nicht NSArray , das die Initialisierungsmethode initWithContentsOfFile: hat.

Versuchen Sie:

%Vor%     
Leo Natan 10.06.2014 16:26
quelle
0
%Vor%

das ist was ich selbst benutze. in viewDidLoad

    
KennyVB 10.06.2014 17:35
quelle
0

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.

    
David Ogren 17.06.2014 13:11
quelle

Tags und Links