Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

Views 1588 Votes 0 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
46 Etc [htm] DOM에 대해 ㅎㅎ file hooni 2003.04.23 14717
45 Etc [ios] 아이폰 개발 따라하기 ㅋㅋㅋ hooni 2013.04.23 23302
44 Etc [link] iOS(아이폰) 개발 관련 ㅋㅋ hooni 2013.04.23 21501
43 Etc [link] 유용한 사이트 링크. hooni 2013.08.19 71450
42 Etc [NFC] 단말기와 서버 통신 내용 hooni 2013.11.12 11184
41 Etc [php] 싸이월드 이미지 외부 링크 하기(php) hooni 2013.04.23 16351
40 Etc [svn] 콘솔에서 svn 사용시 레티나용 이미지 add 안될 때.. hooni 2013.09.25 37490
39 Etc [web] 제로보드 XE 템플릿에서 if문에 대해서 알아봅시다 hooni 2013.08.16 19805
38 Etc [세미나] XML 레포트.. hooni 2003.04.23 19702
37 Etc [용어] POC, Pilot, BMT에 대한 IT 업계에서 통용되는 의미 hooni 2014.01.02 41951
36 Etc 개발자가 알아야할 10가지 보안팁으로 코드 보호하기 hooni 2013.04.23 16403
35 Etc 논문(BHO)에 들어갈 내용 집에가서 테스트 해볼 것.. secret hooni 2013.05.28 10230
34 Etc 모바일 프로그래머가 갖추어야 할 필수 역량 file hooni 2017.02.16 1293
33 Etc 베지어 곡선 (Bezier curve) file hooni 2013.08.18 221064
32 Etc 사이버보안실무 수업 메모 hooni 2017.03.30 807
31 Etc 사이버보안실무 시험. secret hooni 2017.04.20 0
Board Pagination Prev 1 2 3 4 Next
/ 4