일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift #swift keychain #keychain 사용법
- DevelopmentRegion
- GeometryReader
- transformation.map
- scrolling tab
- detect url
- 스크롤 탭
- 기존 앱
- 개발자 면접
- SwiftUI
- Tuist
- 상단 탭바
- pod install
- notifychanged
- DataBinding
- UIPresentationController
- Side Menu
- convert base64
- List
- Android
- oberve url
- swift
- Swift Package Manager
- ios
- UIViewControllerTransitioningDelegate
- url 관찰
- ViewBuilder
- base64 변환
- development language
- url 추적
- Today
- Total
목록전체 글 (172)
버그 잡이
오늘은 view controller 간 데이터를 주고 받는 방법에 대해서 알아보겠습니다. 크게 세 가지 방법이 있습니다. present, push를 활용한 방법 segue를 활용한 방법 프로토콜을 활용한 방법 present, push 를 활용한 방법 방법은 다음과 같습니다. firstVC 에서 nextBtn 클릭시, NextVC로 이동하는 코드를 짭니다. 이때 NextVC의 파라미터인 paramEmail에 원하는 데이터를 넣은 후 present(또는 push) 합니다. //firstVC @IBAction func nextBtn(_ sender: Any) { if let nextVC = self.storyboard?.instantiateViewController(withIdentifier: "NextVC"..
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..
Heap이란? 우선순위 큐를 만들기 위하여 만들어진 자료구조 우선순위 큐 말 그대로 "큐" + "우선 순위"이다. *큐 : 선입선출 방식의 자료구조로 먼저 들어간 자료가 먼저 나오는 방식이다. *우선선위 큐 : 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나온다. (생활 예시) 응급실을 생각해보자. 내가 먼저 왔지만 위급한 정도에 따라서 나중에 온 환자가 먼저 진료를 받을 수도 있다. (소프트웨어 예시) 안드로이드는 메모리가 부족할 경우 시스템에 의해서 프로세스가 종료될 수 있는데 우선순위에 따라서 종료되는 프로세스가 결정된다. 즉, 먼저 실행된 프로세스가 먼저 종료되는 것이 아니라 우선순위에 따라서 결정되는 것이다. *실제로 이게 힙으로 구현되어 있는지는 모르겠지만... 힙을 활용해서도 구현할..
1. 옵저버 패턴이란? 옵저버 패턴은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버를 객체에 등록하여 상태 변화가 있을 때마다 객체가 옵저버에게 통지하도록 하는 디자인 패턴이다. 출처 : 위키백과 객체에 옵저버를 등록하고 상태 변화가 있을 때마다 옵저버를 발동시키는 패턴입니다. 2. 왜 이런 옵저버 패턴을 쓸까? "이벤트 기반 프로그래밍을 위해서 사용한다." *이벤트 기반 프로그래밍이란? 사용자의 명령, 마우스 클릭과 같은 입력 등의 사건에 따라 제어 흐름이 결정되어 일을 하도록 만들어진 프로그래밍 방식입니다. 안드로이드 앱을 예로 들어보면, 버튼에 대한 클릭은 clickListener를 통해서 인식하여 처리합니다. 즉, 이 리스너를 통해서 받은 상태에 따라 처리되는 데이터가 달라지고 추후 동작이 달..
1. HashTable란 도대체 무엇? 해시테이블은 해시함수를 거쳐 만들어진 key와 해시함수를 거치기 전 데이터인 value를 묶어 함께 저장하는 자료구조이다. (여기서 key값은 value값에 대한 색인, 주소 역할을 한다.) *용어 정리 *Hash 함수 : 일정 값이 input인풋으로 들어가면 고정된 길이의 값을 output으로 반환해주는 함수 *Hashing : 특정 value가 hash함수를 거쳐 key값을 반환하고 key:value형태로 해쉬 테이블에 저장되는 모든 과정 2. 특징 "리소스 < 속도" 해시 테이블을 만들기 위해서는 key값이라는 것을 기억할 새로운 메모리 공간이 필요하기 때문에 기존 방법보다 리소스가 많이 든다. 하지만 key값으로 바로 value값을 찾을 수 있기 때문에 찾는..