일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Tuist
- transformation.map
- Side Menu
- UIViewControllerTransitioningDelegate
- 스크롤 탭
- detect url
- DevelopmentRegion
- scrolling tab
- Android
- DataBinding
- oberve url
- url 관찰
- swift
- notifychanged
- UIPresentationController
- url 추적
- 개발자 면접
- base64 변환
- 상단 탭바
- swift #swift keychain #keychain 사용법
- ios
- GeometryReader
- pod install
- SwiftUI
- List
- convert base64
- ViewBuilder
- 기존 앱
- Swift Package Manager
- development language
- Today
- Total
목록Swift (22)
버그 잡이
탈출 클로저(Escaping Closure)란? 함수의 인자로 전달된 클로저가 함수가 반환된 후 실행 되는 클로저을 의미합니다. (말 그대로 전달인자로 받은 클로저가 함수 내부 scope 안에서 실행되는 것이 아니라 이를 탈출해서 다른 어딘가로 가는 것 입니다.) 다음과 같은 경우를 탈출한다고 볼 수 있습니다. 전달받은 클로저가 클로저 함수 외부로 다시 반환되거나 외부 글로벌 변수에 저장되는 경우 이 경우 @escaping을 붙여줘야 하고 그렇지 않으면 compile 에러를 냅니다. 이는 기존에 우리가 알고 있던 변수의 scope 개념을 무시합니다. 왜냐하면 함수에서 선언된 로컬 변수가 로컬 변수의 영역을 뛰어넘어 함수 밖에서도 유효하기 때문입니다. 왜 클로저를 탈출 시킬까요? 보통은 비동기 작업을 하기..
프로토콜은 특정 역할을 하기 위한 메서드 프로퍼티, 기타 요구사항 등의 청사진입니다. 프로토콜은 정의를 하고 제시를 할 뿐 스스로 기능을 구현하지는 않습니다. (자바의 인터페이스와 비슷한 개념인 것 같네요) 다음과 같은 형식으로 정의할 수 있습니다. protocol RandomNumberGenerator { func random() -> Double } 위의 프로토콜을 채택하면 해당 프로토콜에서 정의한 속성과 메서드를 필수적으로 구현해야 합니다. class LinearCongruentialGenerator: RandomNumberGenerator { var lastRandom = 42.0 let m = 139968.0 let a = 3877.0 let c = 29573.0 func random() -> ..
Subscript란? 컬렉션, 리스트, 시퀀스 등 타입의 요소에 접근하는 단축 문법입니다. 예를 들어, var arr = [1,2,3] 이 있습니다. arr[2]를 통해서 3 이라는 값을 얻을 수 있습니다. 이렇게 [2]와 같은 index 값을 통해 값을 설정하거나 가져올 수 있게 해주는 것이 subscript 입니다. 구현 방법 기본적인 틀은 아래와 같습니다. subscript(index: Int) -> Int { get { // get으로 값을 가져올 수 있습니다. } set(newValue) { // set으로 값을 설정할 수 있고 } } 다음과 같이 활용할 수 있습니다. class FavoriteFoods { private var foods = ["bibimbap", "gukbap", "pizza..
해당 내용은 "swift 프로그래밍 3판(저자: 야곰)" 을 보고 정리한 내용임을 밝힙니다. init() : 생성자로, 인스턴스의 첫 사용을 위한 초기화 작업을 수행 구조체와 클래스의 인스턴스는 처음 생성할 때 프로퍼티에 적절한 초깃값을 할당해야 합니다. init()을 통해서 이를 할당할 수 있습니다. class Starbucks(){ var coffee: String init(){ coffee = "latte" } } let starbucks = Starbucks() print(starbucks.coffee) // "latte" //초기값이 아니라 기본값으로 지정할 수도 있습니다. class Starbucks(){ var coffee: String = "latte" } Init() 매개변수 init은 ..
옵셔널(Optional)이란? Optional : "선택적인" 이라는 뜻으로 값이 있을 수도 있고 없을 수도 있는 것 입니다. 정확히 말하면 빈 값(nil)이 될 수 있는 것이죠. *Kotlin의 nullable과 비슷한 개념입니다. 기본적으로 swift는 변수에 nil을 넣을 수 없습니다. kotlin에서도 nullable 타입이 아니면 null을 넣을 수 없는 것 처럼요. 이러한 특성 때문에 nil 값으로 인한 런타임 에러를 더욱 예방할 수 있습니다. 형태 타입 뒤에 "?" 를 붙여줍니다. var name: String? print(name) //nil name = "ray" print(name) //Optional("ray") var name: String? print(name) //nil name..
오늘은 Swift에 어떤 collections Type이 있고 그 사용법을 알아보겠습니다. Swift provides three primary collection types, known as arrays, sets, and dictionaries, for storing collections of values. Arrays are ordered collections of values. Sets are unordered collections of unique values. Dictionaries are unordered collections of key-value associations Swift는 크게 Arrays, sets, dictionaries 세 가지 collections type을 제공합니다. A..