일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Protocol
- ribs
- 리펙토링
- MVVM
- tableView
- rxswift
- UICollectionView
- collectionview
- swiftUI
- 리펙터링
- Clean Code
- Xcode
- combine
- swift documentation
- Refactoring
- clean architecture
- uiscrollview
- HIG
- Human interface guide
- map
- UITextView
- uitableview
- SWIFT
- 리팩토링
- 스위프트
- 애니메이션
- ios
- 클린 코드
- Observable
- RxCocoa
- Today
- Total
목록딕셔너리 (6)
김종권의 iOS 앱 개발 알아가기
딕셔너리에서의 디폴트 값딕셔너리 인스턴스의 value값에 특정 값을 추가하고 싶은 경우, key값이 존재하지 않을 여지가 있기 때문에 아래처럼 컴파일 에러가 발생var dict = ["a": 1, "b": 2]["a", "b", "c"] .forEach { char in dict[char] += 1 // Value of optional type 'Int?' must be unwrapped to a value of type 'Int' }dict에 "c"키값을 새로 만들어서 1 값이 입력되게끔 하고 싶은 경우?아래처럼 nil을 체크하여 구현이 가능하지만 번거로운 형태["a", "b", "c"] .forEach { char in if ..
일반적인 DataSource 관리 Section이 여러개이고 Item도 여러개인 경우, 보통 dataSource를 2차원 배열로 하거나, Section과 Item을 갖는 struct를 만들어서 관리 class ViewController: UIViewController { struct Section { var title: String var items: [String] } var sections: [Section] = [ Section(title: "header is a", items: ["A1", "A2"]), Section(title: "header is b", items: ["B1", "B2"]), ] let tableView: UITableView = {...} } extension ViewCont..
단순 열거 switch 형태 단순히 자연수를 입력하면 한글로 변환시키는 목적이 있을때 아래처럼 사용이 가능 extension Int { var asHangul: String? { switch self { case 1: return "하나" case 2: return "둘" case 3: return "셋" case 4: return "넷" case 5: return "다섯" default: return nil } } } print(1.asHangul) // "하나" 이렇게 사용하게되면 switch, case, return문이 여러개 들어가게 되면서 길어질 수 있기 때문에, dictinoary를 활용하면 조금 더 단순하게 표현이 가능 extension Int { var asHangulV2: String? ..
CFDictionary 개념 CFDictionary는 Core Foundation 프레임워크에서 제공하는 딕셔너리 데이터 구조 C 언어 기반으로 작성되었기 때문에 일반적으로 낮은 오버헤드와 빠른 접근 속도 장점 ex) 낮은 오버헤드와 빠른 접근 속도가 있기 때문에 Swift의 Dictionary는 C보다는 성능 면에서 약간의 오버헤드가 존재 애플에서 이미지 처리 API에서 위해 Swift의 Dictionary가 아닌 CFDictionary를 사용 이미지 처리 API IMageIO 관련 내용에서 CFDictionray사용 내용은 포스팅 글 참고 CFDictionary 사용방법 Core Foundation 프레임워크에서 제공하는 딕셔너리 데이터 구조 Swift의 Dictionary를 as CFDictiona..
NSMapTable 개념 key-value쌍으로 구송하는 컬렉션 타입 중 하나인 Dictionary와 유사하지만 memory 관리를 더욱 디테일하게 처리가 가능한 클래스 딕셔너리는 value type이지만 NSMapTable은 class타입이므로 reference type 딕셔너리는 key-value쌍으로 value에 object를 넣으면 strong reference로 잡히지만, NSMapTable은 통해 weak 설정이 가능 NSMapTable은 멀티 스레드 환경에서도 안전하게 사용할 수 있는 thread safe 속성도 가지고 있는 장점이 존재 NSMapTable로 메모리 캐싱 구현 NSMapTable의 Value 타입에 사용할 class 타입 CachedObject 정의 하나와 NSMapTable..
1. 배열(Array) - 스위프트의 배열은 동적배열 중간에 있는 값을 삭제하면, 뒤에 있는 원소들을 한 칸씩 떙김 1) 선언 1 2 3 4 5 6 // 선언과 초기화 var myArr : Array = Array() var myArr = Array() // 간편한 선언과 초기화 var myArr : [Double] = [Double]() var myArr = [Double]() var myArr : [Double] = [] // 이 경우에서는, 소괄호를 안해주어도 초기화가 됨 2) 탐색 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 var name = {"kim", "lee", "seo"} // 인덱스 접근 for i in 0..