我是迅速的初学者。我试图在代码中使用数组的append方法,但是它不起作用。我应该如何正确实现数组?
错误消息: Swift编译器错误组 ViewController.swift:16:5:预期的声明 ViewController.swift:11:7:在“ ViewController”的声明中
我试图在我的代码中使用数组的append方法,但是它不起作用。
import UIKit
class ViewController: UIViewController { //Error msg: In declaration of 'ViewController'
@IBOutlet weak var dice: UIImageView!
@IBOutlet weak var dice2: UIImageView!
var dices : [String] = []
dices.append("Hi") //Error: Expected declaration
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func rollPressed(_ sender: UIButton) {
dice.image = UIImage(named: "dice3")
}
}
我希望可以将"hi"
添加到数组dices
中。
答案 0 :(得分:3)
在完全初始化vc之后,您应该在函数内调用append
class ViewController: UIViewController { //Error msg: In declaration of 'ViewController'
@IBOutlet weak var dice: UIImageView!
@IBOutlet weak var dice2: UIImageView!
var dices : [String] = []
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
dices.append("Hi") // e.x here
}
@IBAction func rollPressed(_ sender: UIButton) {
dice.image = UIImage(named: "dice3")
}
}
或替换
var dices : [String] = []
使用
var dices = ["Hi"]
答案 1 :(得分:1)
SH_Khan是正确的。我会解释为什么。
定义class
时,缩进的第一级仅用于其方法和属性,即func
,var
和let
。 (您也可以在其中定义其他类/结构/枚举)
调用这些功能或系统功能,例如Array.append()
或print("dog sweat")
必须在另一个功能内部进行。原因是您的应用程序的实时逻辑实际上一直都在起作用。除非先在另一个函数内部,否则不会调用任何函数。 (唯一的例外是Swift的快速而肮脏的初始化,例如将默认值设置为var
或其他函数之外的init() { }
。)
除非发出一些声音,否则狗不会从午睡中醒来。它不会自己做。 (cr脚的比喻,但是)
我希望这有道理。