고도고도
🍎🍏
고도고도
전체 방문자
13,424
오늘
31
어제
64
  • 분류 전체보기 (170)
    • 🔨 프로젝트 (0)
      • TP 1 (0)
      • WhiteHCCTV (0)
      • FootPrint (0)
    • 💻 개발 (61)
      • iOS (28)
      • Android (6)
      • Kotlin (4)
      • Flutter (9)
      • Node.js (5)
      • Architecture (1)
      • 오늘의 삽질 (7)
      • 에러와의 동침 (1)
    • ✏️ 알고리즘 (6)
      • Graph (6)
      • String (0)
      • Sort (0)
    • ✍️ 코테 준비 (44)
      • Math (1)
      • Implementation (3)
      • String (3)
      • Brute Force (5)
      • Back Tracking (7)
      • Greedy (0)
      • Dynamic Programming (13)
      • Binary Search (1)
      • DFS, BFS (5)
      • Shortest Path (2)
      • Two Pointer (4)
      • MST (0)
    • 📚 CS (6)
      • Operating System (6)
    • ⛹️ 라이프 (53)
      • 2020 겨울방학 모칵코(팀) (13)
      • 2020 겨울방학 모각코(개인) (13)
      • 2021 여름방학 모칵코(팀) (8)
      • 2021 여름방학 모각코(개인) (7)
      • 코딩 테스트 (1)
      • 회고 (10)

블로그 메뉴

  • 홈
  • 깃허브
  • 링크드인

공지사항

인기 글

  • [NCSOFT] 2022 엔씨소프트 썸머 인턴 후기 - 1⋯
    2022.08.10
    [NCSOFT] 2022 엔씨소프트 썸머 인턴 후기 - 1⋯
  • [Flutter] SingleChildScrollView,⋯
    2021.08.18
    [Flutter] SingleChildScrollView,⋯
  • [iOS / SwiftUI] MapKit, 실시간으로 도로⋯
    2022.12.20
    [iOS / SwiftUI] MapKit, 실시간으로 도로⋯
  • [Android] 백그라운드에서 소켓 통신으로 이벤트 수신⋯
    2022.06.08
    [Android] 백그라운드에서 소켓 통신으로 이벤트 수신⋯
  • [iOS / SwiftUI] OnAppear, OnDisa⋯
    2022.12.01
    [iOS / SwiftUI] OnAppear, OnDisa⋯

최근 댓글

  • https://developer.apple.com/docu⋯
    고도고도
  • 게시글 잘 보았습니다. 혹시 주소에서 구를 가지고 오시는⋯
    나그네
  • 혹시 댓글이 안보이는데 .. y2e010924@naver.⋯
    eun
  • 글 솜씨가 뛰어나시네요! 좋은 글 잘 보고 갑니다 다음에도⋯
    alpha-traveler
  • NC......가슴이...웅장해집니다.......🤯
    이상한핑구 🐧

최근 글

  • [Architecture] MVVM + Clean Arch⋯
    2023.01.07
    [Architecture] MVVM + Clean Arch⋯
  • [iOS / SwiftUI] MapKit, 실시간으로 도로⋯
    2022.12.20
    [iOS / SwiftUI] MapKit, 실시간으로 도로⋯
  • [iOS / SwiftUI] OnAppear, OnDisa⋯
    2022.12.01
    [iOS / SwiftUI] OnAppear, OnDisa⋯
  • [에러와의 동침] 22년 11월 4주차
    2022.11.28
    [에러와의 동침] 22년 11월 4주차
  • [iOS / SwiftUI] 스크롤, 무한으로 즐겨요~ (⋯
    2022.11.28
    [iOS / SwiftUI] 스크롤, 무한으로 즐겨요~ (⋯

티스토리

hELLO · Designed By 정상우.
고도고도

🍎🍏

[TIL] 22.08.25
💻 개발/iOS

[TIL] 22.08.25

2022. 8. 25. 10:35

공부한 것

부스트코스 - iOS 프로그래밍을 위한 스위프트 기초

알게된 것

1. 옵셔널

// someOptionalParm에 nil이 할당될 수 있음
func someFunction(someOptionalParam: Int?) {
       // ....
}

/// someOptionalParm에 nil이 할당될 수 없음
func someFunction(someOptionalParam: Int) {
       // ....
}
  • nil이 할당될 수 있는지 없는지를 표현
  • nil의 가능성을 명시적(코드)으로 표현 가능
  • 옵셔널이 아닌 경우 nil 체크 없이 바로 사용 가능
  • nil로 인한 예외 상황을 최소화

2. 옵셔널 표현 방법

// 암시적 추출 옵셔널
var optionalValue: Int! = 10

switch optionValue {
case .none:
	print("This is none!")
case .some(let value)
	print("This is \(value)")
}

// 기존 변수처럼 사용 가능
optionValue = optionValue + 1
print(optionalValue) // Optional(11)

// nil 할당 가능
optionValue = nil

// 잘못된 접근으로 인한 런타임 에러
optionalValue = optionalValue + 1

// #####################################
var optionalValue: Int? = 10

// nil 할당 가능
optionalValue = nil

// 기존 변수처럼 사용 불가
// 옵셔널은 기존 변수와 다른 타입
optionalValue = optionalValue + 1

3. 옵셔널 추출

  • 옵셔널 바인딩 방식
var myName: String? = nil

// name 변수는 if-else 구문 내부에서만 사용 가능
if let name:String = myName {
	print(name)
} else {
	print("myName is nil")
}

var myName = "kodo"
var yourName: String? = nil

// ,를 사용해서 여러 개의 옵셔널을 한 번에 바인딩 할 수 있음
// 현재 yourName이 nil이므로 출력문이 실행되지 않음
if let name = myName, let friend = yourName {
	print("\(name), \(friend)")
}
  • 강제 추출 방식
var myName: String! = nil

// 런타임 에러
print(myName)
저작자표시 비영리 변경금지

'💻 개발 > iOS' 카테고리의 다른 글

[iOS / Swift] 클로저와 프로퍼티, 가볍게 알아보기  (0) 2022.10.02
[iOS / Swift] 상속 VS 익스텐션  (0) 2022.09.27
[TIL] 22.08.24  (0) 2022.08.24
[TIL] 22.06.03  (0) 2022.06.03
[TIL] 22.05.27  (0) 2022.05.27
    '💻 개발/iOS' 카테고리의 다른 글
    • [iOS / Swift] 클로저와 프로퍼티, 가볍게 알아보기
    • [iOS / Swift] 상속 VS 익스텐션
    • [TIL] 22.08.24
    • [TIL] 22.06.03
    고도고도
    고도고도
    iOS 꿀잼
    댓글쓰기
    [iOS / Swift] 상속 VS 익스텐션
    다음 글
    [iOS / Swift] 상속 VS 익스텐션
    [TIL] 22.08.24
    이전 글
    [TIL] 22.08.24

    티스토리툴바