[问题] 关于不同class 共用变量

楼主: herbacin (herbacin)   2017-01-16 13:22:39
请问各位
假设我有多个viewcontroller, 每个viewcontroller都想
共用某个物件, 例如玩家资讯User Class,
那User Class一般是否都会写在
AppDelegate.swift里面呢?
例如 :
AppDelegate.swift
class AppDelegate: UIResponder, UIApplicationDelegate {
var user = User()
}
当B Class要使用的时候
let app = UIApplication.shared.delegate as! AppDelegate
let player = app.user
一般是否都是这样的使用呢?
因为AppDelegate这要是管理app生命周期, 才会想是否可以写在这
谢谢
作者: tentenlee (天天)   2017-01-16 13:24:00
在宣告class外面那层宣告变量就是全域变量了
作者: darktt (小朱)   2017-01-16 14:47:00
不要将要保存放在 AppDelegate 中,这是不合物件导向规则的,你还有UserDefaults可以放资料,不然就是开一个单例的物件来保存暂时的资料
楼主: herbacin (herbacin)   2017-01-16 15:13:00
我希望可以存在内存里面, 因为其他viewController都有可能被释放
作者: tkdmaf (皮皮快跑)   2017-01-16 16:03:00
你可以写个struct用静态呼叫。也是个方法。
楼主: herbacin (herbacin)   2017-01-16 16:25:00
了解 谢谢喔
作者: bigbearlazir (肥宅)   2017-01-16 18:38:00
singleton instance不就是在内存上吗singleton instance不等于viewcontroller
作者: gundam00 (傻那驾驶中)   2017-01-17 00:05:00
刚好最近也要用到singleton https://goo.gl/C5xa4e 这篇教你如何用最简单的方式写出singleton的class
作者: a26364177 (伟霖)   2017-01-18 01:47:00
Singleton

Links booklink

Contact Us: admin [ a t ] ucptt.com