Swift4에서 Singleton의 공통 데이터 값을 사용하여 제공
Swift4에서 Singleton의 공통 데이터 값을 사용하여 제공
이번에는 디자인 모드 중 하나인 싱레톤을 배우면서...
나는 간단한 데이터 교환 응용을 해 보았다.
다른 화면 간에 데이터를 교환하고 공동 데이터를 처리할 때 매우 편리해진다
어렵기 때문에 이번에 스위프트 4 환경에서 애플리케이션을 만들었습니다(기본적으로 이전과 아무런 변화가 없습니다...)
Singleton이란?
우선 개요.
푸념 이 곧 나온다. 간단하게 말하자면
"클래스 실례만 생성할 것을 보증합니다."
디자인 모델.
(뒷부분은 기술했지만 swift4에서는 오버라이드가 필수?)
지적하신 대로 괜찮습니다.
※ 설치를 보시면 아바타가 init()를 설치하면 오버라이드를 실행하지 않으면 오류가 발생합니다.
만든 물건
텍스트를 textField 및 TextView에 추가
우리는 다른 화면에 저장된 데이터를 읽고 업데이트할 수 있는 간단한 프로그램을 만들었다
Singleton 만들기
중요한 부분
swift3이면 오버라이드가 필요없지만 swift4 환경이라면 꼭 필요한 것 같아요.
static let sharedInstance: Singleton = Singleton()
private override init() {}
Singleton.swiftimport Foundation
class Data {
var title: String
var contents: String
init(title: String, contents: String) {
self.title = title
self.contents = contents
}
}
class Singleton: NSObject {
var data = Data(title: "", contents: "")
static let sharedInstance: Singleton = Singleton()
private override init() {}
}
객체 생성
ViewController.swift
let singleton :Singleton = Singleton.sharedInstance
값 설정
viewcontroller 측 데이터가 변경되었을 때 사용
Singleton.swift
func saveTitle(title: String) {
data.title = title
}
func saveContents(content: String) {
data.contents = content
}
ViewController.swift@IBAction func tappedButton(_ sender: UIButton) {
guard
let title = textField.text,
let content = textView.text else { return }
singleton.saveTitle(title: title)
singleton.saveContents(content: content)
}
호출 값
설정된 데이터를 호출할 때 사용
속성에 접근하는 것보다 클래스 방법의 이미지를 호출하는 것이 좋습니다.
Singleton.swift
func getTitle() -> String {
return data.title
}
func getContents() -> String {
return data.contents
}
ViewController.swift@IBAction func tappedLoad(_ sender: UIButton) {
textField.text = singleton.getTitle()
textView.text = singleton.getContents()
}
완성
다른 화면에서도 입력한 텍스트 내용을 순조롭게 전송할 수 있다.
이 정도면 전환할 때 넘기면 충분하지만, 실제 앱을 만들 때 처리하는 데이터도 많지 않다
싱레톤은 실례를 보증하고 관리하기도 쉽다.
이번 실장 내용
여기 있다
https://github.com/mcz9mm/Singleton/tree/master
Reference
이 문제에 관하여(Swift4에서 Singleton의 공통 데이터 값을 사용하여 제공), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mcz9mm/items/a58ba981f1b90d5d7ede텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)