ios - 在 UIViewController Extension 中引用全局字符串变量

标签 ios swift uiviewcontroller extension-methods

假设在 ViewController 类中有一个全局字符串变量。在这个 ViewController 类的另一个扩展文件 (ViewControllerExtension.swift) 中,我希望能够在一个函数中对这个全局变量进行调整。

现在,扩展中有一个函数将全局字符串变量作为输入:

func doSomething(inputString: String){
//something is being done and the adjustment will be reflected in the ViewController instance.
}

我的问题是:

  1. 有没有一种方法可以访问 ViewController 的全局字符串变量,而无需在输入时通过函数进行引用?
  2. 解决此问题的设计好的方法是什么?经验丰富的程序员将如何解决这个问题?

提前致谢。

最佳答案

我认为你应该做的是使用变量的 didSet 方法, 它是这样的:

var Name = "" {
    didSet{
        print("The name has been change")
    }
}

考虑到这一点,你可以说

class Your_class {
    var Name = "" {
        didSet{
            //something is being done and the adjustment will be reflected in the ViewController instance.
        }
    }

}

extension Your_class {
   self.Name = "Paco"
}

现在这实际上会做同样的事情,它更适合 swift 但最后你所做的似乎很好。我在你的代码中看到的问题是,如果你调用那个函数,甚至调用我刚刚发布的函数,并且 VC 不在屏幕上,这将不起作用,如果是这种情况,请发布更多信息,以便我们可以帮助你。 ;)

关于ios - 在 UIViewController Extension 中引用全局字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45134832/

相关文章:

iphone - 释放 managedObjectContext 对象 c

swift - didDiscoverCharacteristicsFor 没有返回 HM-10 BLE 的任何特征

ios - UI 图像/多 View Controller

ios - 'UIViewController' 不是 'ViewController' 的子类型

ios - Safari ios iframe 黑屏旋转

ios - 不能对类型为 'Any' SWIFT 的非可选值使用可选链接

swift - 我正在获取无效的文档引用。文档引用在xcode中必须具有偶数个段错误

swift - 选项集更惯用的快速测试?

ios - 启动时如何从 uiviewcontroller 向 uipopover 发送数据?

iphone - 如何删除自定义导航栏图像?