[問題] 關於不同class 共用變數

看板MacDev作者 (herbacin)時間7年前 (2017/01/16 13:22), 編輯推噓5(508)
留言13則, 7人參與, 最新討論串1/1
請問各位 假設我有多個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生命週期, 才會想是否可以寫在這 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.61.66.43 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1484544162.A.9B3.html

01/16 13:24, , 1F
在宣告class外面那層宣告變數就是全域變數了
01/16 13:24, 1F

01/16 14:47, , 2F
不要將要保存放在 AppDelegate 中,這是不合物件導向規則
01/16 14:47, 2F

01/16 14:47, , 3F
的,你還有UserDefaults可以放資料,不然就是開一個單例
01/16 14:47, 3F

01/16 14:47, , 4F
的物件來保存暫時的資料
01/16 14:47, 4F

01/16 15:13, , 5F
我希望可以存在記憶體裡面, 因為其他viewController
01/16 15:13, 5F

01/16 15:14, , 6F
都有可能被釋放
01/16 15:14, 6F

01/16 16:03, , 7F
你可以寫個struct用靜態呼叫。也是個方法。
01/16 16:03, 7F

01/16 16:25, , 8F
了解 謝謝喔
01/16 16:25, 8F

01/16 18:38, , 9F
singleton instance不就是在記憶體上嗎
01/16 18:38, 9F

01/16 18:39, , 10F
singleton instance不等於viewcontroller
01/16 18:39, 10F

01/17 00:05, , 11F
剛好最近也要用到singleton https://goo.gl/C5xa4e 這篇
01/17 00:05, 11F

01/17 00:05, , 12F
教你如何用最簡單的方式寫出singleton的class
01/17 00:05, 12F

01/18 01:47, , 13F
Singleton
01/18 01:47, 13F
文章代碼(AID): #1OV5YYcp (MacDev)