Contents

Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

조회 수 1599 댓글 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
번호 분류 제목 글쓴이 날짜 조회 수
50 Etc 이클립스(Eclipse) 유용한 단축키 ㅋㅋ hooni 2013.04.23 21770
49 Etc [link] iOS(아이폰) 개발 관련 ㅋㅋ hooni 2013.04.23 21507
48 Etc 스마트폰 보안 해외 발생 사례~ file hooni 2013.04.23 24946
47 Etc [ios] 아이폰 개발 따라하기 ㅋㅋㅋ hooni 2013.04.23 23306
46 Etc [flash] 자동차 엔진의 원리 (4행정 사이클 그림) file hooni 2013.04.23 21228
45 Etc 아두이노 관련 정보.. hooni 2013.04.23 21774
44 Etc 영어공부에 도움될만한 사이트 모음 hooni 2013.05.14 22632
43 Etc 논문(BHO)에 들어갈 내용 집에가서 테스트 해볼 것.. secret hooni 2013.05.28 10230
42 Etc 엑셀 함수 총 정리 ㅎㅎ file hooni 2013.06.05 24465
41 Etc 여러 대학 및 권위있는 기관 강좌 모음 ㅋㅋ hooni 2013.06.17 15122
40 Etc 영작 연습을 위한 실용영어 문장 1001개 (1~500) hooni 2013.06.21 30429
39 Etc 성문 종합 영어 정리된 pdf 파일 file hooni 2013.06.25 30981
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6