如果我切换整数字符串,下面的代码可以很好地工作。但是使用String它不起作用。
import UIKit
class ViewController: UIViewController {
@IBOutlet var txt: UITextField!
var arrayOfInt = [String]()
@IBAction func submit(_ sender: Any) {
if let text = txt.text {
if let name = String(text){
arrayOfInt.append(name)
}}}
}
答案 0 :(得分:0)
您(不必要地)使用String
从String
初始化String(text)
;与Int(_ string:String)
不同,这不是可用的初始化程序。
有可能String
无法解析为Int
,因此您需要检查Int(text)
是否未返回nil
,而是String
{1}}始终可以从String
初始化。
当你说
时if let name = String(text) {
编译器给出错误,因为if let...
条件绑定构造需要可选,但String(text)
不返回可选项。
您的代码可以简化为:
class ViewController: UIViewController {
@IBOutlet var txt: UITextField!
var arrayOfString = [String]()
@IBAction func submit(_ sender: Any) {
if let text = sender.text {
arrayOfString.append(text)
}
}
}