该值已正确打印到Label,但我想在bubbleSort()中显示每次迭代。因此,我在每次迭代中都放置了一些打印命令。但是,它仅在控制台上打印。我想将每个迭代打印到Label2上。
我最终无法从视图控制器中的扩展名访问变量。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var userArr: UITextField!
@IBOutlet weak var Label: UILabel!
@IBOutlet weak var Label2: UILabel!
@IBAction func sortBtn(_ sender: Any) {
let strings = userArr.text
let digs = strings?.digits
var arrayIntegers = strings?.components(separatedBy: " ").flatMap { Int($0) }
let t = arrayIntegers!.bubbleSort()
Label.text = "\(t)"
Label2.text = "" //This is where each iteration should be.
// "\(bubbleSort.a)" + "\(b)" + "\(c)" tried something similar to that
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
extension Array where Element: Comparable {
func bubbleSort (by areInIncreasingOrder: ((Element, Element) -> Bool) = (<)) ->[Element] {
var data = self
let a = print(data) //prints first iteration
for i in 0..<(data.count-1){
for j in 0..<(data.count-i-1) where areInIncreasingOrder(data[j+1], data[j]){
let b = print(data) // print iteration n+1 to n-1
data.swapAt(j, j+1)
}
}
var c = print(data) // print last iteration
return data
}
}
答案 0 :(得分:0)
答案 1 :(得分:0)
用
代替var c = print(data)
// this grabs current text from label or empty string if nil
var currentText = Label2.text ?? ""
// This assigns current text + " - YOURDATA" to it
Label2.text = "\(currentText) - \(data)"