下面的代码试图在按下按钮时为数组中的每个新条目建立索引。因此,在按下按钮时会自动对元素进行排序。
var arrayOfInt = [Int]()
@IBAction func submitText(_ sender: Any) {
if let text = enterText.text {
if let number = Int(text) {
var index = 0
for num in arrayOfInt {
if num > number {
arrayOfInt.insert(number, at: index)
break
}
index += 1
}
print(arrayOfInt)
} else {
print("Please enter number")
}
}}
当打印时,这就是要输出的内容。没有数字被打印。
最佳答案
最初,arrayOfInt是空数组。所以它永远不会进入这个数组,因为数组是空的
for num in arrayOfInt {
//Whatever is here
}
无论您要实现什么,您的逻辑都是错误的。
数组已经有sort(by:(Element,Element)-> Bool)方法
您最好编写如下代码:
var arrayOfInt = [Int]()
@IBAction func submitText(_ sender: Any) {
if let text = enterText.text , let number = Int(text) {
arrayOfInt.append(number)
arrayOfInt.sort { return $0 > $1 } //Modify accordingly the order you want
print(arrayOfInt)
} else {
print("Please enter number")
}
}