gpt4 book ai didi

ios - 将每次迭代打印到标签

转载 作者:行者123 更新时间:2023-11-29 05:32:07 25 4
gpt4 key购买 nike

尝试将冒泡排序的每次迭代打印到标签文本上,以显示在屏幕上而不是控制台上。

我尝试在每次更新数组时分配标签文本,但它只显示数组的最后一个版本,即已排序的版本

屏幕打印:

on screen print

我想在标签上打印什么:

what i want to print on the label

class ViewController: UIViewController {

@IBOutlet weak var Label2: UILabel!

public func bubbleSort<T> (_ arrays: [T], _ comparison: (T,T) -> Bool) -> [T] {
var array = arrays

for i in 0..<array.count {
for j in 1..<array.count-i {
if comparison(array[j], array[j-1]) {
let tmp = array[j-1]
array[j-1] = array[j]
array[j] = tmp
print(array) // prints the array after each iteration to the console
// inserting Label2.text = "\(array)" doesnt work as I intend it to.
}
}
}


return array
}

public func bubbleSort<T> (_ elements: [T]) -> [T] where T: Comparable {
return bubbleSort(elements, <)
}

}

最佳答案

这将是使用 tableView 显示数据的好地方。

  1. UITableView 添加到您的 ViewController。添加一个基本样式原型(prototype)单元,并使用“cell”作为重用标识符。
  2. 将 Storyboard 中的 tableView 附加到 @IBOutlet var tableView: UITableView!
  3. viewDidLoad() 中设置 tableView.delegatetableView.dataSource
  4. 将属性 var steps = [String] 添加到您的 ViewController
  5. 在冒泡排序的每个步骤中,将数组附加到steps:steps.append("\(array)")
  6. numberOfRowsInSection()中,返回steps.count
  7. cellForRowAt() 中,设置 cell.textLabel?.text = steps[indexPath.row]
  8. 使用 didSet 属性观察器进行 steps 调用 tableView.reloadData()
<小时/>
import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet var tableView: UITableView!

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return steps.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

cell.textLabel?.text = steps[indexPath.row]

return cell
}

var steps = [String]() {
didSet {
tableView.reloadData()
}
}

public func bubbleSort<T> (_ arrays: [T], _ comparison: @escaping (T,T) -> Bool) -> [T] {
var array = arrays

for i in 0..<array.count {
for j in 1..<array.count-i {
if comparison(array[j], array[j-1]) {
let tmp = array[j-1]
array[j-1] = array[j]
array[j] = tmp
print(array) // prints the array after each iteration to the console
steps.append("\(array)")
}
}
}

return array
}

public func bubbleSort<T> (_ elements: [T]) -> [T] where T: Comparable {
return bubbleSort(elements, <)
}

override func viewDidLoad() {
super.viewDidLoad()

tableView.dataSource = self
tableView.delegate = self
}

@IBAction func go(button: UIButton) {
steps = []
_ = bubbleSort([33, 45, 25, 356, 5, 90, 14])
}
}

关于ios - 将每次迭代打印到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57438676/

25 4 0