Contents

Develop
2018.10.31 09:06

[ios] Swift 4 Singleton inheritance

조회 수 1690 댓글 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"



?

  1. macOS에 node, npm 설치하기 (homebrew)

    Date2021.11.06 CategoryDevelop Byhooni Views1460
    Read More
  2. [php] 한글 문자열 자르기 (utf-8)

    Date2015.11.10 CategoryDevelop Byhooni Views1463
    Read More
  3. [android] 간단한 SQLIite 예제

    Date2017.06.14 CategoryDevelop Byhooni Views1472
    Read More
  4. [ios] How to set up clang formatter

    Date2015.09.17 CategoryDevelop Byhooni Views1474
    Read More
  5. [ios] Swift 4 String, Date, DateFormatter 예제

    Date2018.10.18 CategoryDevelop Byhooni Views1513
    Read More
  6. What is difference between Get, Post, Put and Delete?

    Date2018.02.28 CategoryDevelop Byhooni Views1570
    Read More
  7. How to Test SMTP AUTH using Telnet

    Date2018.04.05 CategoryDevelop Byhooni Views1589
    Read More
  8. [swift] popToRoot 모달뷰, 네비게이션컨트롤러 한꺼번에 닫기

    Date2021.01.29 CategoryDevelop Byhooni Views1595
    Read More
  9. [android] 레이아웃 사이즈 변경 (동적; programmatically)

    Date2016.11.07 CategoryDevelop Byhooni Views1619
    Read More
  10. [ios] binary를 C코드로 변환

    Date2015.01.03 CategoryDevelop Byhooni Views1649
    Read More
  11. [ios] 스크린 캡쳐 (전원버튼 + 홈버튼) 호출 알아내기

    Date2014.11.19 CategoryDevelop Byhooni Views1657
    Read More
  12. [ios] Swift 4 Singleton inheritance

    Date2018.10.31 CategoryDevelop Byhooni Views1690
    Read More
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 71 Next
/ 71