我的代码现在将条目附加到结构中。如果按下按钮,则会将条目添加到标签并对标签进行排序。按下按钮 - >进入结构 - > struct打印并在标签上排序。我希望结构中的每个条目都能以编程方式进行排序,就像我通过影响标签的操作按钮一样。
import UIKit
class ViewController: UIViewController {
@IBOutlet var a: UITextField!
@IBOutlet var label: UILabel!
var contacts = [Person]()
@IBAction func save(_ sender: Any) {
contacts.append(Person(name: a.text!))
let sortedContacts = contacts.sorted {
($0.name < $1.name)
}
label.text = contacts.count == 0 ? "" : sortedContacts.map { $0.description }.joined(separator: "\n")
}
struct Person {
var name: String
var description: String {
return "\(name)"
}
}
}
答案 0 :(得分:0)
您可以按如下方式对myStruct
进行排序:
Person.myStruct.sorted { $0 < $1 }
答案 1 :(得分:0)
如果您的目标是对Person
个对象进行排序,请对contacts
进行排序:
@IBAction func save(_ sender: Any) {
contacts.append(Person(name: a.text!))
contacts.sort { $0.name < $1.name }
label.text = contacts.map { $0.description }.joined(separator: "\n")
}
正如评论中所述,您应该更新Person
结构:
struct Person: CustomStringConvertible {
let name: String
var description: String {
return name
}
}