부스트코스 “iOS 프로그래밍” 요약정리 - 2. 회원가입 화면 구현 #5

Updated:

5. Singleton




5.1. Singleton?

  • 싱글턴: 특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체
  • 애플리케이션이 요청한 횟수와 관계없이 이미 생성된 같은 인스턴스를 반환한다. 즉, 애플리케이션 내에서 인스턴스가 딱 하나만 존재한다.

Cocoa 프레임워크에서의 싱글턴 디자인 패턴

싱글턴 인스턴스를 반환하는 팩토리 메서드나 프로퍼티는 일반적으로 “shared” 이름이다.

싱글턴 디자인 패턴을 활용하는 대표적인 클래스

  • FileManager.default
    • 애플리케이션 파일 시스템 관리
  • URLSession.shared
    • URL 세션 관리
  • NotificationCenter.default
    • 등록된 알림 정보 사용
  • UserDefaults.standard
    • 키-밸류 형태로 간단한 데이터 저장 및 관리 하는 인터페이스 제공
  • UIApplication.shared
    • iOS에서 실행되는 중앙제어 애플리케이션 객체

주의할 점

  • 싱글턴은 인스턴스가 하나만 존재하기 때문에 객체가 여러개 만들어질 필요가 없는 경우 많이 사용.
  • 멀티 스레드 환경에서 동시에 싱글턴 객체를 참조할 경우 원치 않은 결과 발생 가능하므로 잘 고려해서 사용할 것

참고 링크




5.2. Singleton 구현해보기

  1. 스토리보드
    • ViewController
    • 스택뷰로 텍스트필드 2개 (“name”,age”) 추가
    • 버튼 “Set Data to Singleton”추가 - SecondViewController에 레이블 2개(“name”,”age”) 추가
  2. UserInformation.swift 클래스 파일 추가
    • 싱글턴으로 작성
    • 프로퍼티 name, age 작성
  3. ViewController
    • 인터페이스 빌더와 연결할 프로퍼티와 메서드 작성
  4. SecondViewController
    • 인터페이스 빌더와 연결할 프로퍼티 작성
    • viewWillApear()에 프로퍼티와 UserInformation 연동 작성
  5. 스토리보드에서 아웃렛, 액션 연결

UIStackView

  • 스택뷰는 여러 뷰들의 수평 또는 수직 방향의 선형적인 레이아웃을 사용하게 해준다.
  • 스택뷰와 오토레이아웃 기능으로 화면크기에 따라 동적으로 적응할 수 있는 인터페이스를 만든다.

스택뷰의 생성방법 2가지

  1. 스택뷰를 먼저 생성하고 그 안에 새로운 뷰를 추가
  2. 이미 존재하는 뷰들을 스택뷰에 추가
    • 뷰들을 선택한 후 Editor-Embed In-Stack View 선택

주요 프로퍼티

  • arragneSubView: 스택뷰의 정렬된 뷰의 배열. 스택뷰에 포함된 뷰들을 이 프로퍼티에 저장하고 관리
  • axis: 레이아웃의 방향 결정 (vertical 수직, horizontal 수평)
  • distribution: 스택뷰에 포함된 뷰가 어떻게 배치될지 결정
  • spacing: 스택뷰에 정렬된 뷰들의 사이 간격

주요 메서드

  • addArrangeSubview(): arrangedSubviews 배열에 마지막 요소에 뷰를 추가
  • insertArrangedSubview(): arrangedSubviews 배열의 특정 인덱스에 뷰를 추가
  • removeArrangedSubview(): 스택뷰의 arrangedSubviews 배열로부터 뷰를 제거

참고 링크

Leave a comment