2016-04-26 2 views
3

ich gelesen, dassInit in Swift Sprache

init

in Swift nicht Wert zurück, dann, warum ich dieses schreiben kann:

var str = String.init("mystring") 
+3

Streng gesprochen * gibt keinen Wert zurück * ist falsch. Die "init" -Funktion gibt die Instanz zurück, aber Sie müssen 'self' nicht explizit wie in Objective-C zurückgeben – vadian

+0

danke für die Antwort) – tproger

Antwort

1

Die init-Funktion nicht return Sie haben Recht, aber in diesem Fall machen Sie nur eine Variable gleich der Struktur String, die mit "Hallo"

initialisiert wird

Es ist dasselbe wie:

var class = someClass() 

Das() ist eine Funktion init ohne Argumente.

+0

danke, können Sie bitte ein anderes Beispiel der Verwendung von init geben, wenn es keinen Wert zurückgibt? – tproger

+0

So oft man sieht() auf etwas, das keine Funktion ist, ist es ein Init-Aufruf. So zum Beispiel AVAudioPlayer() oder gar [String]() –

+0

In diesen Fällen müssen Sie die initialisierte Instanz einer Variablen zuweisen oder sie hat keine Speicherstelle im Speicher. Die Variable IS ist die Instanz der Klasse oder des Objekts usw. Der Init-Aufruf hat nichts zurückgegeben. –