0

我有一个公共类,其中在源文件中声明了变量。我正在尝试在第 1 页(操场书)中设置这些变量以在第 2 页中使用。目前我可以看到该类,但它不允许我访问这些变量,即使我将它们声明为公共。

数据.swift

 public class GlobalVars {
       public var progress = Float()
       public var didComplete = Bool()

}

内容.swift

GlobalVar().progress = 1

我也试过这个

数据.swift

 public class GlobalVars {
       public var progress:Float?
       public var didComplete;Bool?

    public init() progress:Float? = nil, didComplete:Bool? = nil {
    self.progress = progress
    self.didComplete = didComplete
    }

}

它们是可选的,所以我可以单独设置每个,但是当我设置一个时,其他所有内容都设置为零。如果我在设置后尝试获取一个值,我仍然会得到 nil。

4

1 回答 1

0

使用单例模式以便能够访问共享变量。这是一个适用于您的情况的代码。将 GlobalClass 类添加到源

     import Foundation
   // GlobalVars.swift has to be in source files     
        public class GlobalVars {
           public var progress:Float = 0.0
           public var didComplete:Bool = true
           public static let sharedInstance = GlobalVars()
            private init() {}
        }

在您的页面中,您可以像这样使用它。

import UIKit

GlobalVars.sharedInstance.progress = 1
GlobalVars.sharedInstance.didComplete = false
print(GlobalVars.sharedInstance.progress)
print(GlobalVars.sharedInstance.didComplete)

我刚刚测试过它并且它有效

于 2018-03-22T10:33:52.993 回答