2016-05-13 14 views
4

Ich lerne Swift2/iOS App-Entwicklung. Ich bin verwirrt von einem Fehler, der von Xcode vor dem Kompilieren ausgelöst wird. Hier wirft der Code den Fehler:Swift kann den Wert vom Typ '()' nicht dem Typ 'String?'

let dotpos = display.text!.rangeOfString(".") 
if dotpos != nil { 
    display.text = display.text!.removeRange(dotpos!) 
} 

Der Fehler ausgelöst wird (auf der Linie "display.text = display.text .removeRange (dotpos)!"):

Wert kann nicht zuweisen vom Typ '()' um 'String?'

Hinweis: Anzeige ist ein UILabel Objekt.

Könnte mich jemand auf den Fehler hinweisen, den ich möglicherweise gemacht habe?

+3

'removeRange' hat keinen Rückgabewert, dargestellt durch'() ' – vadian

+0

@vadian Wird der Rückgabewert nicht als' String? 'Angenommen, da' display.text' vom Typ 'String?' Ist (bestätigt durch Option + Klick)? – Cedric

+0

Nein, die Methode ist als "muting" gekennzeichnet, dh der Empfänger ist mutiert. – vadian

Antwort

5

benötigen Sie Dokumentation für diese (Apple swift String link)

let dotpos = display.text!.rangeOfString(".") 
if dotpos != nil { 
    display.text!.removeRange(dotpos!) 
} 

Dieser Code wird arbeiten, um zu überprüfen removeRange Funktion zurückgeben nichts, sagte Dokumentation

func removeRange mutiert (_ subrange: Reichweite)

bedeutet Text mutieren, wenn Sie die Methode auf Ihrem Textlabel aufrufen.

Der Text ändert sich direkt und Sie müssen keinen neuen Wert zuweisen, um ihn zu ändern.

+0

Was jetzt gesehen wurde, wird offensichtlich! Vielen Dank! – Cedric

+0

Coole, fröhliche Codierung :) – guiltance

Verwandte Themen