Jestem nowy w nauce Swift, więc postanowiłem równie dobrze nauczyć się Swift 2. Dla mnie wszystko ma sens, z wyjątkiem poniższego fragmentu kodu. Mam nadzieję, że ktoś może mi o tym powiedzieć.Jak używać opcjonalnego wiązania w Swift 2
//: Playground - noun: a place where people can play
import UIKit
//Works
let possibleNumber="2"
if let actualNumber = Int(possibleNumber) {
print("\'\(possibleNumber)\' has an integer value of \(actualNumber)")
}
else {
print("could not be converted to integer")
}
//Doesn't Work and I'm not sure why
let testTextField = UITextField()
testTextField.text = "2"
let numberString = testTextField.text //I know this is redundant
if let num = Int(numberString) {
print("The number is: \(num)")
}
else {
print("Could not be converted to integer")
}
Górna część kodu jest prosto od Apple Swift 2 ebook i ma to sens dla mnie jak wykorzystuje opcjonalne wiązanie przekonwertować ciąg do int. Drugi fragment kodu jest w zasadzie taki sam, z wyjątkiem tego, że ciąg pochodzi z właściwości tekstowej UITextField. Dolna część kodu daje następujący błąd:
wykonanie zabaw failed: /var/folders/nl/5dr8btl543j51jkqypj4252mpcnq11/T/./lldb/843/playground21.swift:18:18: Błąd: wartość opcjonalna wpisz "String?" nieopakowany; czy chciałeś użyć "!" lub "?"? jeśli niech num = Int (numberString) {
Naprawiłem problem przy użyciu tej linii:
if let num = Int(numberString!) {
Chcę tylko wiedzieć, dlaczego drugi przykład potrzebuje! a pierwszy nie. Jestem pewien, że problem polega na tym, że otrzymuję ciąg znaków z pola tekstowego. Dzięki!
Pamiętaj, aby zaakceptować odpowiedź, jeśli rozwiązuje problemu :-) – Fogmeister
Dzięki! Używałem tej strony wcześniej, ale nigdy nie napisałem pytania. Twoja odpowiedź była bardzo pomocna. – jobber80
witam w StackOverflow :-) cieszę się, że mogłem pomóc. – Fogmeister