init不接受int值(swift4)

时间:2017-11-17 15:50:15

标签: ios struct int init swift4

我的代码无法接受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)"
        }}}

1 个答案:

答案 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)