我有一些类,即User,Settings ...,我在大多数ViewController中都使用过。因为我经常使用它们,所以如果仅在全局范围内使用它们的一个实例,或者为每个类使用新的实例,会更好吗?
在AppDelegate中:
let user = User()
class AppDelegate: UIResponder, UIApplicationDelegate {
...
vs。
在每个班级:
class TimerViewController: UIViewController {
private let user = User()
答案 0 :(得分:3)
对于当前的状态来说,全局性更好
let user = User()
但是最好将其设为单例
class Service {
static let shared = Service()
let user = User()
}
因此,在阅读代码时不要混淆其他开发人员,将不会知道此全局变量是否为local / instance / global,因此成为单例将对此进行排序
答案 1 :(得分:1)
我的两分钱
总是最好在实际需要的地方声明它,而不是在全局声明它。优良作法是限制我们使用的变量的范围,以便在工作结束时将其释放并从内存中清除。在这里,很明显该实例只有一个所有者。
声明全局对象将导致维护实例属性的全局状态,并且由于它对所有类都是开放的,因此尚不清楚哪个类在改变什么,这里每个人都像是该实例的所有者。总是最好避免这种情况。