来自iOS中不同ViewController时,用于更改行为的全局变量/单例的替代方法。

时间:2018-12-03 01:21:18

标签: ios swift singleton global-variables

SO上已经有很多关于全局变量替代方案的问题。我希望这个问题足够具体,可以引起回应。

我(错误地)依赖于10多个全局变量,这些全局变量在选择到新的ViewController或RestAPI完成处理程序后,用于区分行为。

示例:

var comingFromRegister: Bool = false
var comingFromMenuToUpdateAddress: Bool = false 
var comingFromCancelOrderFromOrdersVC: Bool = false

我很好奇最好的方法是摆脱全局变量。我可以创建一个名为ComingFrom的单例类来处理以下情况:

final class ComingFrom {
    static let shared = ComingFrom()

    var register: Bool = false
    var menuToUpdateAddress: Bool = false
    var cancelOrderFromOrdersVC: Bool = false

    private init() {}
}

由于依赖单身人士有很多弊端,对于这些情况,有什么更好的方法?

1 个答案:

答案 0 :(得分:0)

这取决于您的体系结构。对于您的情况,似乎枚举更好。