首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误?读取IBAction按钮中的变量

错误?读取IBAction按钮中的变量
EN

Stack Overflow用户
提问于 2017-01-02 20:41:57
回答 2查看 47关注 0票数 0

我有一个需要从变量中读取的IBAction。但是,当将变量放置在viewDidLoad之外时,我会收到错误

不能在属性初始化器中使用实例成员“动物”;属性初始化器在“self”可用之前运行

我的代码如下。当我将变量移回viewDidLoad中时,错误声明animalName未声明

代码语言:javascript
运行
复制
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!))
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-02 20:51:01

发生这种情况是因为您试图在属性animalName之前初始化您的animal.speciesId!已经初始化了。一个简单的解决办法是:

代码语言:javascript
运行
复制
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!))
}
票数 0
EN

Stack Overflow用户

发布于 2017-01-02 20:51:45

animalName中声明变量时,使用变量viewDidLoad()作为局部变量。

局部变量只在声明的函数中工作,以便在您创建的按钮中使用animalName,必须将其声明为实例变量或按钮的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41433042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档