Contents

Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

Views 1592 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

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
No. Category Subject Author Date Views
57 Develop 사이버보안실무 발표자료 (2017.06.08) file hooni 2017.06.05 1205
56 Etc 사이버보안실무 수업 메모 hooni 2017.03.30 809
55 Develop 사이버보안실무 수업 메모 secret hooni 2017.03.23 0
54 Etc 사이버보안실무 시험. secret hooni 2017.04.20 0
53 PPT 삼성페이(Samsung Pay) 구조 file hooni 2016.09.09 925
52 Develop 서기의 PHP 동영상 강의(싱싱해) hooni 2013.05.15 30980
51 System/OS 서버 확장을 위한 두 가지 방법 file hooni 2018.08.29 2100
50 Etc 선과 악에 대한 영어논술문항(지킬앤하이드 독서 후 이어지는 심화 수행평가) hooni 2013.12.04 12746
49 Etc 성문 종합 영어 정리된 pdf 파일 file hooni 2013.06.25 30964
48 Etc 수리통계학 : 표본공간과 사상-1 hooni 2015.04.20 900
47 Etc 스마트폰 보안 해외 발생 사례~ file hooni 2013.04.23 24936
46 Algorithm 스터디 자료, 암호화에 대해서.. 나중에 볼 ppt.. file hooni 2013.04.23 13370
Board Pagination Prev 1 ... 89 90 91 92 93 94 95 96 97 98 Next
/ 98