【问题标题】:initializer is being unused to append data (swift3)初始化程序未用于附加数据(swift3)
【发布时间】:2018-02-12 01:20:10
【问题描述】:

我正在尝试将两个文本字段中的任何内容附加到 MyData 集中。但是,有一条错误消息返回给我,指出

MyData.init(company: textA.text!, scorej: Int(textB.text!)!) 未被使用。

如何附加这些数据?

import UIKit

struct MyData {
   var company = String()
   var scorej: Int
}

var data = [
   MyData(company: "smiths", scorej: 4),
   MyData(company: "lukes", scorej: 4),
]

let sortedArray = data.sorted(by: { ($0.company, $1.scorej) < ($1.company, $0.scorej) })

class ViewController: UIViewController {

   @IBOutlet var textB: UITextField!
   @IBOutlet var textA: UITextField!

   @IBAction func store(_ sender: Any) {
      MyData.init(company: textA.text!, scorej: Int(textB.text!)!)
      print(sortedArray)
   }
}

【问题讨论】:

    标签: swift initialization append init


    【解决方案1】:

    Unuesed 表示某物已返回某物而您尚未使用它。

    MyData(company: textA.text!, scorej: Int(textB.text!)!)
    

    没有在任何地方使用,这意味着:

    let yourObject = MyData(company: textA.text!, scorej: Int(textB.text!)!)
    

    并且yourObject 在代码中的任何地方都没有使用,以防告诉编译器您暂时不想使用它,避免这种情况是一个简单的方法:

    let _ = MyData(company: textA.text!, scorej: Int(textB.text!)!)
    

    _- 告诉编译器你不会使用它。例如,它可以方便地处理 if 条件中的 nil 变量。

    编辑

    按照你所说的,请将新创建的对象附加到store函数中,然后再次对其进行排序。

    【讨论】:

    • 这不会导致错误,但不会将新的 each 添加到 MyData。使用时它仍然只有 2 个条目 let _ = MyData(company: textA.text!, scorej: Int(textB.text!)!)
    • 那么你想用MyData(company: textA.text!, scorej: Int(textB.text!)!) 做什么?
    • 我希望它成为 var 数据集中的第三个条目。现在只有两个条目。我想把它花在那个数据集上。
    猜你喜欢
    • 2016-04-07
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多