Sono nuovo nell'apprendimento di Swift quindi ho deciso che avrei potuto imparare anche Swift 2. Tutto ha avuto senso per me finora tranne per il seguente frammento di codice. Spero che qualcuno possa far luce su questo per me.Come utilizzare l'associazione opzionale in 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")
}
La sezione superiore del codice è retta dalla Swift 2 ebook di Apple e ha senso per me come usa opzionale vincolante per convertire la stringa in un int. Il secondo pezzo di codice è fondamentalmente lo stesso ad eccezione del fatto che la stringa proviene dalla proprietà text di un UITextField. La parte inferiore del codice dà il seguente errore:
esecuzione Playground riuscita: /var/folders/nl/5dr8btl543j51jkqypj4252mpcnq11/T/./lldb/843/playground21.swift:18:18: errore: il valore di optional digitare 'String?' non scartato; intendevi usare '!' o '?'? se lasciate num = Int (numberString) {
ho risolto il problema utilizzando questa linea:
if let num = Int(numberString!) {
Voglio solo sapere perché il secondo esempio ha bisogno del! e il primo no. Sono sicuro che il problema ha a che fare con il fatto che sto ottenendo la stringa da un campo di testo. Grazie!
Ricordarsi di accettare una risposta se si risolve il problema :-) – Fogmeister
Grazie! Ho usato questo sito prima ma non ho mai postato una domanda. La tua risposta è stata molto utile. – jobber80
benvenuto su StackOverflow :-) felice di essere stato in grado di aiutarti. – Fogmeister