[swift] 전역 변수를 만드는 방법은 무엇입니까?

내 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"


답변