我有一個全局變量,需要在我的ViewControllers之間共享。如何創建一個全局變量?
在Objective-C中,我可以定義一個靜態變量,但是我找不到在Swift中定義全局變量的方法。
你知道一個辦法嗎?
我有一個全局變量,需要在我的ViewControllers之間共享。如何創建一個全局變量?
在Objective-C中,我可以定義一個靜態變量,但是我找不到在Swift中定義全局變量的方法。
你知道一個辦法嗎?
從迅速編程guide
全局變量是任何 函數,方法,封閉件,或類型上下文之外定義的變量。全局常量和變量 總是懶洋洋地
計算您可以在任何文件中定義它,並可以在任何地方訪問它在當前module
。 所以你可以在任何範圍之外的文件中的某個地方定義它。沒有必要使用static
,並且所有全局變量都是延遲計算的。
var yourVariable = "someString"
並且您可以從當前模塊的任何位置進行訪問。
但是,您應該避免這種情況,因爲全局變量對於應用程序狀態並不好,主要原因是錯誤。
如圖所示answer 在swift中,您可以將它們封裝在struct
中,並且可以在任何地方訪問。 您也可以在swift中定義靜態變量或常量。封裝在struct
struct MyVariables {
static var yourVariable = "someString"
}
您可以在任何類中使用這個變量或任何地方,任何方法或關閉外,可以按照範圍由使用private關鍵字限制
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"
*您的*結構被稱爲'MyVariables',所以'MyViewState'看起來像來自http的複製/粘貼錯誤://stackoverflow.com/a/24868789/1187415 :) – 2014-10-04 18:48:07
感謝Martin R.是的,我已經複製了它的代碼 – codester 2014-10-04 18:49:52
如果你從另一個答案複製代碼,那麼你應該明確指出(與原始答案的鏈接) 。比較http://stackoverflow.com/help/referencing。 – 2014-10-04 18:52:46
全局變量。
import UIKit
// MARK: Local Constants
private let changeSegueId = "MasterToChange"
private let bookSegueId = "MasterToBook"
常數(「讓」)不是一個變量。 – 2016-09-01 05:24:33
一個答案在這裏http://stackoverflow.com/questions/24868120/how-to-create-global-variable-in-swift – 2014-10-04 17:36:18
的可能的複製[如何創建斯威夫特全局變量?( https://stackoverflow.com/questions/24868120/how-to-create-global-variable-in-swift) – 2018-01-24 03:59:47