我有一个公共类,其中包含在源文件中声明的变量。我正在尝试在第 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。如果我在设置后尝试获取值,我仍然得到 nil。
使用单例模式以便能够访问共享变量。这是一个适用于您的情况的代码。将全局类添加到源
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)
我刚刚测试过这个,它可以工作