Contents

Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

조회 수 5920 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Swift 4 에서 싱글톤 객체를 사용하는 방법은 여러 가지가 있겠지만 이건 내가 자주 사용하는 두 가지..


# 변수 형태로 사용하기

ex) Singleton.shared.name = "Hello"

클래스를 상속 받아서 확장하기 어려움 ㅠㅠ


import UIKit


class Singleton

{

    static let shared: Singleton = {

        var instance = Singleton()

        instance.name = "default name"

        return instance

    }()

    

    var name: String = String()

}


class SingletonSubclass: Singleton {

    static var sharedSub: SingletonSubclass = {

        var instance = SingletonSubclass()

        instance.name = "default name"

        return instance

    }()

    

    var title: String = String()

}


Singleton.shared.name          // ""

SingletonSubclass.shared.name  // ""


SingletonSubclass.shared.name = "haha"

SingletonSubclass.sharedSub.title = "hello"


Singleton.shared.name             // ""

//Singleton.shared.title          // (error)

SingletonSubclass.shared.name     // "haha"

SingletonSubclass.sharedSub.title // "hello"




# 함수 형태로 사용하기

ex) Singleton.sharedInstance().name = "Hello"

클래스를 상속 받아 확장하기 편함

Sometimes you need to subclass your singleton…


import UIKit


class Singleton

{

    class func sharedInstance() -> Singleton {

        struct inner { static let instance = Singleton() }

        inner.instance

        return inner.instance

    }

    

    var name: String = String()

}


class SingletonSubclass: Singleton

{

    override class func sharedInstance() -> SingletonSubclass {

        struct inner { static let instance = SingletonSubclass() }

        return inner.instance

    }

    

    var title: String = String()

}


Singleton.sharedInstance().name          // ""

SingletonSubclass.sharedInstance().name  // ""


SingletonSubclass.sharedInstance().name = "haha"

SingletonSubclass.sharedInstance().title = "hello"


Singleton.sharedInstance().name          // ""

//Singleton.sharedInstance().title       // (error)

SingletonSubclass.sharedInstance().name  // "haha"

SingletonSubclass.sharedInstance().title // "hello"



?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
843 Develop 프로그램 문서 관리 (Doxygen) hooni 2013.04.23 17834
842 Develop 프로그래밍에서 foo, bar 함수의 유래 file hooni 2013.06.25 22884
841 Develop 프로그래밍 소스 관련 사이트.. hooni 2013.04.23 17900
840 Develop 페이팔에서 돈 찾기 (Paypal withdraw) file hooni 2014.02.20 12745
839 Develop 캘리포니아 운전면허 족보 file hooni 2017.06.12 2814
838 Develop 최근 논문 자료 (2011/01/03, 만현형한테 보낸거..) secret hooni 2013.04.23 10366
837 Develop 참고하고 지울 자료.. 집에서 바야지.. ㅋㅋ file hooni 2013.04.23 14093
836 Develop 정리할 자료. file hooni 2015.07.02 2089
835 Develop 자주 쓰는 Docker 명령어 alias hooni 2020.01.10 289401
834 Develop 이어서 작업할 내용~ secret hooni 2013.11.21 0
833 Develop 웹페이지 성능 테스트 툴 설명 hooni 2013.04.23 28443
832 Develop 알고리즘 성능분석 file hooni 2014.06.24 4260
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 71 Next
/ 71