2017-02-10 7 views
0

Ich habe diese Methode, die ein Flag übernimmt und basierend auf dem es die Benutzeroberfläche aktualisiert.Swift Default-Parameter verwendet den zwischengespeicherten Wert

Boolean welches ist ein Standard-Parameter ist eigentlich die Erreichbarkeit erreichbar.

Sobald die Netzwerkverbindung deaktiviert ist, ist der erwartete Wert für Flag false, aber immer true. Wenn ich es direkt überprüfe, ohne einen Standardparameter wie if Reachability.reachable zu verwenden, dann zeigt es die Warnung an.

Ist es falsch, einen Standardparameter zu verwenden, der sich dynamisch ändert?

Antwort

0

Ich versuche, einige offizielle Dokumentation zu finden, aber ich kann nicht. Schnelle Standardparameterwerte sind statisch nicht dynamisch gebunden. Sehen Sie diesen Beitrag

https://airspeedvelocity.net/2014/06/12/default-parameters-in-swift-are-statically-bound/

EDIT:

Nun, ich bin falsch, sieht aus wie es dynamisch ist. Sie können es mit diesem Spielplatz testen:

//: Playground - noun: a place where people can play 

import Cocoa 

func myFunction(date: Date = Date()) { 
    print("Using date \(date)") 
} 

myFunction() 
sleep(3) 
myFunction() 

Hier finden Sie die Datumswechsel nach einer Wartezeit 3 ​​Sekunden sehen, so dass es einen neuen Date auf dem zweiten Anruf ... Vielleicht gibt es einen Fehler in Ihrem Erreichbarkeits Code?

Verwandte Themen