Swift4에서 Singleton의 공통 데이터 값을 사용하여 제공

7920 단어 SwiftiOS

Swift4에서 Singleton의 공통 데이터 값을 사용하여 제공


이번에는 디자인 모드 중 하나인 싱레톤을 배우면서...
나는 간단한 데이터 교환 응용을 해 보았다.
다른 화면 간에 데이터를 교환하고 공동 데이터를 처리할 때 매우 편리해진다
어렵기 때문에 이번에 스위프트 4 환경에서 애플리케이션을 만들었습니다(기본적으로 이전과 아무런 변화가 없습니다...)

Singleton이란?


우선 개요.
푸념 이 곧 나온다. 간단하게 말하자면
"클래스 실례만 생성할 것을 보증합니다."
디자인 모델.
  • Singleton 클래스에는 static Singleton 클래스의 인스턴스가 있음
  • init를privte로point
  • 로 설정
    (뒷부분은 기술했지만 swift4에서는 오버라이드가 필수?)
    지적하신 대로 괜찮습니다.
    ※ 설치를 보시면 아바타가 init()를 설치하면 오버라이드를 실행하지 않으면 오류가 발생합니다.

    만든 물건


    텍스트를 textField 및 TextView에 추가
    우리는 다른 화면에 저장된 데이터를 읽고 업데이트할 수 있는 간단한 프로그램을 만들었다

    Singleton 만들기


    중요한 부분
    swift3이면 오버라이드가 필요없지만 swift4 환경이라면 꼭 필요한 것 같아요.
    static let sharedInstance: Singleton = Singleton()
    private override init() {}
    
    Singleton.swift
    import 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

    좋은 웹페이지 즐겨찾기