我的代码无法接受Person.init(name:a.text!,phone:c.text!)中的int值,其中c.text!是。我怎样才能解决这个问题。
import UIKit
class ViewController: UIViewController {
@IBOutlet var c: UITextField!
@IBOutlet var a: UITextField!
@IBOutlet var label: UILabel!
var contacts = [Person]()
@IBAction func save(_ sender: Any) {
contacts.append(Person(name: a.text!, phone: Int(c.text!)!))
contacts.sort { ($0.name, $0.phone) < ($1.name, $1.phone)}
label.text = String(describing: contacts)
Person.myStruct.append(label.text!)
Person.init(name: a.text!, phone: c.text!)
}
struct Person : CustomStringConvertible {
var name: String
var phone: Int
static var myStruct = [String]();
var description: String {
return "\(name),\(phone)"
}}}
答案 0 :(得分:0)
Person.init(name: a.text ?? "", phone: Int(c.text ?? "") ?? 0)
Struct期望Int不是String。这应该有所帮助。使用nil coalescing运算符安全地展开选项
但是上面的init没有任何效果,因为没有以任何方式使用Created Person
实例。出于某些神秘的原因,如果你真的想忽略创建的Person对象,请使用
let _ = Person.init(name: a.text ?? "", phone: Int(c.text ?? "") ?? 0)