Swift Singletone 패턴 학습
오브젝티브C에 비해 한결 간편해진 스위프트의 싱글톤 패턴. 어느 패턴보다 더 익숙하게 잘 사용하는 나는 싱글톤을 좋아한다. 싱글톤 패턴을 싫어하는 사람도 많고 이유도 다양하지만 어플리케이션 전역에서 접근하기 수월하며 재 생성에 대한 부담을 줄여 주므로 앱 개발 시에는 꼭 필요한 패턴이라고 생각이 든다.
스위프트에서 싱글톤 패턴을 사용하는 것은 너무나 간단하기 때문에 코드로 간단히 살펴보자.
/**
공통 데이터 관리 싱글톤
*/
class SketchDataManager {
static let shared: SketchDataManager = {
return SketchDataManager()
} ()
private var myJoinGroups = [Any]()
}
접근 사용은 SketchDataManager.shared() 간단하다.
그리고 해당 Manager의 멤버 메서드는 extension으로 따로 관리한다. 자료 데이터에 대한 setter/getter가 필요하다.
extension SketchDataManager {
//setter
func setMyGroups(list: [Any]) {
myJoinGroups.removeAll()
myJoinGroups = list
}
//getter
func getMyGroups() -> [Any] {
return myJoinGroups
}
/*
그룹가입 여부를 리턴한다.
*/
func isJoinGroup(id: String) -> Bool {
var ret : Bool = false
for item in self.myJoinGroups {
let tempDic : Dictionary<String, Any> = item as! [String : Any]
if let groupId = tempDic["group_id"] as? String {
if groupId == id {
ret = true
break
}
}
}
return ret
}
}
어떤 클래스에서라도 접근이 가능하고 자유자재로 컨트롤이 가능하다는 것은 굉장히 매력적이다.
잘 활용하면 손쉬운 앱개발을 하는데 많은 도움을 준다.
'프로그래밍 > Swift' 카테고리의 다른 글
3. 프로토콜 지향 프로그래밍 (0) | 2019.02.13 |
---|---|
2. 함수형 프로그래밍의 특징. (0) | 2019.02.13 |
Swift extension CALayer, UIView border (0) | 2018.05.04 |
스위프트의 튜플(Tuple)이란? (0) | 2018.03.14 |
스위프트 익스텐션을 이용한 Touch ID구현(지문인식) (0) | 2018.03.12 |