2016-04-22 6 views
-2

ich ein Textfeld haben, welche Werte sie enthalten, wenn:Unterschied zwischen „Null“, „leer“ und „wenige Leertaste getippt“ in Swift

  1. ich nichts geben.
  2. Ich tippe einige Leerzeichen Bars.

Sind das 2 verschiedene Dinge? Ist nil von beiden verschieden?

+1

Haben Sie es versucht? –

+0

Ein einfacher Test könnte Ihre Frage beantworten: 'print (text? .isEmpty)'. Mögliche Antworten = null, wahr und falsch. – Eendje

+0

@MartinR & Eendje, ich habe es versucht, aber ich wollte die Theorie dahinter wissen ... –

Antwort

2

nil verwendet, wenn ein Objekt oder Wert nicht existiert. text auf einem UITextField sollte niemals nil als sein default value is the empty string ("") sein.

Die leere Zeichenfolge "" unterscheidet sich von einer Zeichenfolge mit Leerzeichen " ". Eine Zeichenfolge mit Leerzeichen enthält Zeichen und hat eine Länge, jedoch viele Leerzeichen, die in der Zeichenfolge enthalten sind. Die Länge der leeren Zeichenfolge ist 0.

+0

In Ihrem ersten Satz würde ich das Wort _object_ durch _value_ ersetzen, da in Swift 'nil' für beide' Reference Types' möglich ist 'Werttypen'. –

1

Diese Frage muss oft gestellt worden sein, aber eine Erinnerung ist immer willkommen für Neulinge in der iOS-Entwicklung (auch wenn, wie markiert, die Kommentare, ein wenig Erfahrung für sich hätte nützlich sein können).

Zuerst was ist nil? Nun, es ist nichts, ist das einfach. Ein leeres String unterscheidet sich von null, da es ein Objekt ist, ein String mit 0 Zeichen drin. A String mit mehreren Leerzeichen darin unterscheidet sich auch von diesen beiden Werten, weil die String Länge von 0 verschieden ist, auch wenn einmal angezeigt, Ihr String sieht leer aus!


FYI, bevor iOS6, der Standardwert der text Eigenschaft auf einer UITextField war nil, und es war notwendig, es zu testen, bevor es zu benutzen. Jetzt ist der Standardwert eine leere Zeichenfolge "". Ich denke, die text ist eine optionale String in Swift wegen dieser historischen Standard-Wert.

Verwandte Themen