내 ViewController간에 공유해야하는 전역 변수가 있습니다.
Objective-C에서는 정적 변수를 정의 할 수 있지만 Swift에서 전역 변수를 정의하는 방법을 찾을 수 없습니다.
그것을하는 방법을 알고 있습니까?
답변
공식 Swift 프로그래밍 가이드에서 :
전역 변수는 함수, 메서드, 클로저 또는 유형 컨텍스트 외부에서 정의 된 변수입니다. 전역 상수와 변수는 항상 느리게 계산됩니다.
모든 파일에서 정의 할 수 있으며 현재 module
어디서나 액세스 할 수 있습니다 . 따라서 범위 밖의 파일 어딘가에 정의 할 수 있습니다. 필요가 없으며 static
모든 전역 변수가 느리게 계산됩니다.
var yourVariable = "someString"
현재 모듈의 어느 곳에서나 액세스 할 수 있습니다.
그러나 전역 변수는 응용 프로그램 상태 및 주로 버그의 원인에 좋지 않기 때문에 이것을 피해야합니다.
이 답변 에서 볼 수 있듯이 Swift에서 캡슐화하고 struct
어디서나 액세스 할 수 있습니다. Swift에서도 정적 변수 또는 상수를 정의 할 수 있습니다. 캡슐화struct
struct MyVariables {
static var yourVariable = "someString"
}
이 변수는 모든 클래스 또는 어디서나 사용할 수 있습니다.
let string = MyVariables.yourVariable
println("Global variable:\(string)")
//Changing value of it
MyVariables.yourVariable = "anotherString"
답변
메서드 또는 클로저 외부에 정의 된 전역 변수는 private 키워드를 사용하여 범위를 제한 할 수 있습니다.
import UIKit
// MARK: Local Constants
private let changeSegueId = "MasterToChange"
private let bookSegueId = "MasterToBook"
답변
모든 수업에서 사용하려면 다음을 사용할 수 있습니다.
public var yourVariable = "something"
한 클래스에서만 사용하려면 다음을 사용할 수 있습니다.
var yourVariable = "something"