일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- 상호배제
- 비동기
- 동시성
- 100 days of SwiftUI
- 인프런
- 프로세스 스케줄링
- @state
- SwiftUI
- 앨런
- 파일 시스템
- Linked List
- async
- COLOR
- Algorithm
- core data
- 데드락
- Apple Developer Academy
- 동기화
- Swift
- struct
- 알고리즘
- 운영체제
- Codable
- 가상 메모리
- 오브젝트
- forEach
- deadlock
- decode
- UserDefaults
- Today
- Total
목록Swift (11)
기어가더라도 제대로
사실 기초가 아니지만, 어려운 예제지만 꼭 이해해야 더 풍성한 앱을 만드는데 도움이 되는 내용이기에 짚고 넘어갑니다. Bundle에서 파일을 올리는 예제 번들에 하나의 타입을 담고 있는 JSON 파일이 각각 여러개라고 가정 제네릭을 쓰지 않으면, 파일 하나하나당 타입을 명시해줘야해서 재사용성이 떨어짐 func decode(_ file: String) -> [String: Astronaut] { } func decode(_ file: String) -> [Mission] { } 각각은 missions.json, astronauts.json 두개의 파일을 올리기 위해서 거의 같은 내용의 메서드 두개를 만들어야할 것이다. 천천히 하나부터 기능이 동작하게 만들고 그다음에 이것을 제네릭으로 바꿔보자. decodi..
- Protocol 의 생성과 사용 - Opaque(불투명) 반환 타입의 사용 프로토콜이란? 데이터 타입에게 기대하는 기능을 정의 Swift 식으로 하는 계약 앱의 나머지 부분에서 이 프로토콜을 따라야함 실제 구현은 고려하지 않고 "이 타입은 이 기능을 따를거야~" 라고 명시 예시 출퇴근을 하는 사람을 시뮬레이션 하는 코드가 있다고 가정 이 사람은 다양한 교통 수단을 이용해서 "통근" 이라는 기능을 수행해야함 기차, 차, 오토바이, 공유 킥보드, 비행기 등 무슨 교통 수단을 타더라도 다음의 두 기능은 수행해야함 어떤 수단을 타는지보다 "통근"을 "얼마의 시간" 동안 했다는 것이 중요 새로운 프로토콜 타입이므로 가장 앞 대문자를 쓰는 캐멀케이스 사용 이 프로토콜이 수행해야하는 행동(메서드)을 리스트업 구..
배열 배열은 스트링, 정수, 더블 처럼 고유한 자료 타입이다. 인덱스로 해당 자리에 있는 값을 호출한다. 실제하는 인덱스 바깥의 인덱스로 호출을 하면 크래시가 난다. .append() 로 추가하는데, 기존에 있는 데이터와 같은 타입의 데이터여야한다. swift는 자료형이 섞이는 것을 좋아하지 않는다. Array가 자신이 가지고 있는 범위 밖을 요청할 떄 에러를 내는 이유는 무엇인가? 없는 범위를 요구하면 에러를 내는것이 데이터가 없음에도 잘못된 데이터를 내는 것보다 낫다. Dictionary 배열이 순서를 지키는 데이터를 저장하는데 최적의 선택이 될 수 있지만, 그 자리에 값이 있음을 항상 보장하지는 않는다. 만약 array[2] 를 요구했는데 그 배열이 조작되서 아이템의 개수가 2개밖에 없다고 하면 어..