swift - 如何在函数中设置静态变量的属性

标签 swift swift2

在本例中,静态变量 textView 包含在 Holder 结构中。
但我遇到了一个问题,每次用户调用此函数时,我都必须设置“Holder.textView.fieldEditor = true”。
如何让这个 Action 只运行一次?

func myTextView() -> NSTextView {

    struct Holder {
        static var textView = NSTextView()
    }

    Holder.textView.fieldEditor = true
    return Holder.textView
}

最佳答案

这个

struct Holder {
    static var textView = NSTextView()
}

应该在函数范围之外定义。否则,每次调用 myTextView() 时,都会定义并实例化一个新的 Holder 结构。

这使得 static var 对您的目的毫无用处。

另一方面,如果您在函数外部定义 Holder,则该值会在多次调用中保留。

enter image description here

关于swift - 如何在函数中设置静态变量的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37473302/

相关文章:

ios - 使用 performBackgroundTask 将多个核心数据插入分派(dispatch)到 NSPersistentContainer 时合并冲突

swift - URLSession 完成器的单元测试包装器

ios - 如何使用 Repl Xcode 7?获取绝对路径错误

ios - 解析 JSON 文件(本地存储),从而在 swift 中创建对象数组

ios - 调用 PoptoViewController 后从 UIController 的栈顶回调

swift - Watchkit 扩展无法从 iCloud 读取

swift - 这个例子中的 0xFFFFFFFF 是做什么的?

xcode - 当变量具有特定值时触发函数

ios - React Native/Swift - 应用内购买代码在沙箱和测试飞行中随机崩溃

ios - [NSTaggedPointerString objectAtIndex :]: unrecognized selector sent to instance