Contents

Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

조회 수 1581 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
1149 Etc 영어의 12 시제 (The twelve tenses of English) hooni 2013.07.12 15697
1148 Etc 영어공부에 도움될만한 사이트 모음 hooni 2013.05.14 22625
1147 Etc 영어. 외우면 도움되는 필수영어회화 표현 file hooni 2013.09.09 20922
1146 Etc 영어. 불규칙 동사 정리 file hooni 2017.10.04 3470
1145 Etc 영어. 반드시 외워야 할 영어 숙어 2 file hooni 2016.07.07 6311
1144 Etc 영어. 반드시 외워야 할 문장 패턴 100개 file hooni 2023.06.08 881
1143 Etc 영어. 반드시 외워야 할 단어 file hooni 2016.07.07 1948
1142 Etc 영어 아주 쉬운 영작문 강의 01~60 secret hooni 2013.06.25 0
1141 Etc 영어 관련 토렌트 secret hooni 2013.06.25 0
1140 Etc 여러 대학 및 권위있는 기관 강좌 모음 ㅋㅋ hooni 2013.06.17 15114
1139 Etc 여기저기서 모은 VoIP(인터넷전화) 자료들~ file hooni 2013.04.23 15964
1138 Etc 엑셀 함수 총 정리 ㅎㅎ file hooni 2013.06.05 24456
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 98 Next
/ 98