[問題] Swift觀念跟一些疑問求救...

看板MacDev作者 (高雄人)時間7年前 (2017/05/27 12:15), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串1/2 (看更多)
原本是寫C#剛跳過來寫Swift 遇到一些疑問比如說 在C#我可以宣告一個靜態類別 public static class csGlobal { public static int i = 0; } 比如在程式內我會存取一個靜態類別內的共用變數好了 這樣在其他不同頁面我也能去檢查這變數狀態,csGlobal.i == 1 blabla來做後續邏輯 。 但在Swift可以這樣用嗎?還是有另外寫法呢? 就是在"不同的Controller之間都能共用變數"或是靜態類別的寫法 有像C# 宣告public static class Golbal{...}寫法? 因最近有Firebase相關的存取問題 EX: 我的主進入點是Tab bar Controller,下方有兩個分頁 然後我在主頁面內有FIRAuth.auth()?.addStateDidChangeListener()監聽器去判斷是否 登入,假如有登入了我會在主頁面user = FIRUser表示有人資料。 然後下面是我想問的 我在第二分頁的TableViewController的Cell上會寫類似一般APP都會有的"登出"按鈕, 但問題就在這邊,我在另一個分頁的Controller,又如何得知到主頁面上變數user的資訊 ...? 才能用這段 if user != nil { try! FIRAuth.ayth()!.signout() user = nil } 最後偷渡問一下 AppDelegate.swift 這頁面大多功用是在做什麼的阿? 我本來依名字以為是所有委託都寫在這邊 但好像不是? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.151.80 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1495858523.A.C16.html

05/27 12:56, , 1F
靜態變數可以用 struct 名稱 { static let i = 0}
05/27 12:56, 1F

05/27 12:56, , 2F
這樣寫 呼叫也是用 名稱.i
05/27 12:56, 2F

05/27 16:51, , 3F
swift 不支援class是靜態的嗎?
05/27 16:51, 3F

05/28 04:01, , 4F
沒必要啊, 你這樣寫跟直接 namespace + 全域變數一樣
05/28 04:01, 4F

05/28 04:01, , 5F
C# 是因為沒有全域變數和全域函式所以才有這個東西
05/28 04:01, 5F
文章代碼(AID): #1PAFrRmM (MacDev)
文章代碼(AID): #1PAFrRmM (MacDev)