【问题标题】:set the value of struct property in different Viewcontrollers in ios swift在ios swift中设置不同Viewcontrollers中struct属性的值
【发布时间】:2018-08-03 06:36:07
【问题描述】:

我使用 struct 来设置常量。我有整数形式的 maxTextLength 我必须为不同的控制器设置不同的值,例如一个用于 300 和另一个 1000。这是我的代码

    struct Validations {
    static let maxAudioRecSec:Int = 150
    static var maxTextLength = 300 // Default value
    }
    SecondVC :ViewController {
    override func viewDidLoad () {
          Validations.maxTextLength = 1000
    } 
   }

所以 SecondVC 中更改的值仅保留在该控制器中,即 1000。如果我在另一个控制器中访问此值,则默认值为 300。

【问题讨论】:

  • 如果你想要不同的值,你需要不同的结构实例

标签: ios swift struct


【解决方案1】:

你必须像下面这样使用,不要对maxTextLength使用静态变量。

struct Validations {
    static let maxAudioRecSec:Int = 150
    var maxTextLength = 300 // Default value
 }

现在在任何ViewController 中,您必须像下面这样使用。

class SecondVC :ViewController {
var validations = Validations() // create Validations struct object
    override func viewDidLoad () {
          validations.maxTextLength = 1000 // use like this
    } 
   }

有任何疑问欢迎评论。

【讨论】:

  • 感谢您的回复。但是在 viewController 中使用此代码后,我收到此错误“静态成员 'maxTextLength' 不能用于 'Validations' 类型的实例”
  • 你需要从 maxTextLength 变量中删除静态关键字,检查我的答案。正确。
  • Bhavin 和 Vivek 非常感谢。它有效。如果我的问题是有效的,那么你可以投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
  • 2015-08-26
  • 1970-01-01
  • 2012-01-11
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多