错误?读取 IBAction 按钮内的变量
Error? Reading variable inside IBAction Button
我有一个需要从变量读取的 IBAction。但是,当将变量放在 viewDidLoad
之外时,我收到错误
Cannot use instance member 'animal' within property initializer; property initializers run before 'self' is available
我的代码如下。当我将变量移回 viewDidLoad
中时,错误表明 animalName 未声明 [=14=]
var animalName = (String(format: "%03d", animal.speciesId!))
@IBAction func megaKeyIBO(_ sender: Any) {
animalName = (String(format: "%03d", animal.speciesId!)) + "-merg"
}
override func viewDidLoad() {
super.viewDidLoad()
//variable was originally here before moving to top
var animalName = (String(format: "%03d", animal.speciesId!))
}
发生这种情况是因为您试图在 属性 animal.speciesId 之前初始化动物名称!已经初始化。一个简单的解决方法是:
var animalName: String!
@IBAction func megaKeyIBO(_ sender: Any) {
animalName = (String(format: "%03d", animal.speciesId!)) + "-merg"
}
override func viewDidLoad() {
super.viewDidLoad()
// Initialize on viewDidLoad
animalName = (String(format: "%03d", animal.speciesId!))
}
当您在 viewDidLoad()
中声明时,您正在使用变量 animalName
作为局部变量
局部变量仅在它们声明的函数中起作用,以便在您创建的按钮中使用 animalName
它必须声明为实例变量或在按钮的函数中
我有一个需要从变量读取的 IBAction。但是,当将变量放在 viewDidLoad
之外时,我收到错误
Cannot use instance member 'animal' within property initializer; property initializers run before 'self' is available
我的代码如下。当我将变量移回 viewDidLoad
中时,错误表明 animalName 未声明 [=14=]
var animalName = (String(format: "%03d", animal.speciesId!))
@IBAction func megaKeyIBO(_ sender: Any) {
animalName = (String(format: "%03d", animal.speciesId!)) + "-merg"
}
override func viewDidLoad() {
super.viewDidLoad()
//variable was originally here before moving to top
var animalName = (String(format: "%03d", animal.speciesId!))
}
发生这种情况是因为您试图在 属性 animal.speciesId 之前初始化动物名称!已经初始化。一个简单的解决方法是:
var animalName: String!
@IBAction func megaKeyIBO(_ sender: Any) {
animalName = (String(format: "%03d", animal.speciesId!)) + "-merg"
}
override func viewDidLoad() {
super.viewDidLoad()
// Initialize on viewDidLoad
animalName = (String(format: "%03d", animal.speciesId!))
}
当您在 viewDidLoad()
animalName
作为局部变量
局部变量仅在它们声明的函数中起作用,以便在您创建的按钮中使用 animalName
它必须声明为实例变量或在按钮的函数中