글로벌 변수 작성 방법
View Controller 간에 공유해야 하는 글로벌 변수가 있습니다.
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"
1개의 클래스만으로 사용하는 경우는, 다음과 같이 사용할 수 있습니다.
var yourVariable = "something"
실제로 전역 변수를 원하지 않고 대신 앱이 종료되어도 지속되는 값을 저장하려면 다음과 같이 하십시오.
뷰 컨트롤러 간에 실제로 데이터를 전달하지 않고 단순히 글로벌 변수를 저장하려는 경우 다음과 같이 수행할 수 있습니다.
Swift 5에서 이 작업을 수행하는 방법에 대한 자세한 설명은 다음과 같습니다.https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults
요약:.
값을 설정하려면:
let defaults = UserDefaults.standard
defaults.set("value", forKey: "key")
String 값을 가져오려면:
let key = defaults.object(forKey: "StringKey") as? [String] ?? [String]()
정수 값을 가져오려면:
let key = defaults.integer(forKey: "IntegerKey")
언급URL : https://stackoverflow.com/questions/26195262/how-to-create-a-global-variable
'source' 카테고리의 다른 글
'찾기'를 사용하여 특정 날짜에 작성된 파일을 검색하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
---|---|
컴퓨터가 시작될 때 PowerShell 스크립트를 실행하는 방법은 무엇입니까? (0) | 2023.04.19 |
WPF와 Silverlight의 비교 (0) | 2023.04.19 |
Objective-C에서 딜러를 작성하려면 어떻게 해야 합니까? (0) | 2023.04.19 |
월별 및 연도별 SQL 그룹화 (0) | 2023.04.19 |