iOS 22

Swift ;; Stack 구현!

Swift에는 Stack 내장함수가 존재하지 않기 때문에 직접 Stack를 구현해서 사용해야 한다. swift 알고리즘 문제 DFS 등을 풀 때 필요한 경우가 있다. 하지만! swift 메서드 중 popLast()와 같은 메서드를 보면, 굳이 Stack을 구현하지 않고 배열을 스택처럼 사용해도 무방하다. 스택은, 프링글스 과자통의 과자를 꺼내먹을 때와 같이 나중에 들어간 원소가 먼저 나오게 된다. 이를 후입선출(LIFO, Last In First Out) 구조라고 한다. 스택의 연산은 삽입(push), 삭제(pop), 원소 보기(peek), count(스택에 들어있는 원소의 개수), isEmpty(스택이 비었는지 여부)로 이루어져 있다. Stack 구현 코드 struct Stack { private va..

iOS/Swift 2023.02.09

Swift ;; Queue 구현!

Swift에는 Queue 내장함수가 존재하지 않기 때문에 직접 Queue를 구현해서 사용해야 한다. swift 알고리즘 문제 BFS 등을 풀 때 필요한 경우가 있다. 큐는, 사람들이 줄을 설 때와 같이 먼저 들어간 원소가 먼저 나오게 된다. 이를 선입선출(FIFO, First In First Out) 구조라고 한다. 큐의 연산은 삽입(enqueue), 삭제(dequeue), 원소 보기(peek), count(큐에 들어있는 원소의 개수), isEmpty(큐가 비었는지 여부)로 이루어져 있다. enqueue 큐에 원소를 삽입하는 연산 큐를 배열로 선언하고, append를 통해 삽입한다. dequeue 큐의 원소를 삭제하는 연산 removeFirst()를 사용 시 O(n)의 시간복잡도를 가진다. 이를 개선하기..

iOS/Swift 2023.02.09

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 4탄 (위도, 경도 값을 주소로 변환하기)

https://may1coding.tistory.com/27 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 3탄 (지도의 위도, 경도 값 받아오기) https://may1coding.tistory.com/26 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 2탄 (유저 현위치 띄우기) https://may1coding.tistory.com/25 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 1탄.. 내가 구현을 맡은 뷰!! 지 may1coding.tistory.com 진짜 최최종... 앞서 Mapkit을 이용해서 화면에 지도를 띄우고, 초기에 보일 지도를 설정해서 보여주었다. (1탄) 그 후 버튼을 누르면 유저의 현 위치에 마커를 표시하고, 해당 위치로 이동했다. (2탄) ..

iOS/UIKit 2022.11.13

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 3탄 (지도의 위도, 경도 값 받아오기)

https://may1coding.tistory.com/26 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 2탄 (유저 현위치 띄우기) https://may1coding.tistory.com/25 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 1탄.. 내가 구현을 맡은 뷰!! 지도 하단의 버튼을 눌렀을 때 현재 위치를 지도에 띄워주고, 해당 위치를 하단에 표시해주는 작 may1coding.tistory.com 대망의 마지막.. 앞서서 Mapkit을 이용해서 지도를 화면에 띄우고, 초기 위치(region)로 보여줄 부분을 설정하고, 유저의 현 위치를 지도에 띄웠다. 다음으로 할 일은 유저의 위치를 문자로 받아오는 것이다! 이를 위해 찾아보니 1. CLLocationManagerDele..

iOS/UIKit 2022.11.13

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 2탄 (유저 현위치 띄우기)

https://may1coding.tistory.com/25 UIKit ;; Mapkit으로 지도에 현 위치 표시하기 1탄.. 내가 구현을 맡은 뷰!! 지도 하단의 버튼을 눌렀을 때 현재 위치를 지도에 띄워주고, 해당 위치를 하단에 표시해주는 작업이 필요하다. MapKit 사용 이유 지도를 구현할 때는 네이버맵, 카카오맵 may1coding.tistory.com Mapkit으로 지도를 띄우고, 초기 위치까지 보여주는 데는 성공했다. 다음은 버튼 클릭 시 1. 유저의 현 위치를 지도에 보여주고 2. 현 위치를 글자로 나타내야 한다. CLLocationManager 먼저, MapView는 단지 지도의 역할(정적)을 하는 것이고, 유저의 위치를 다루기 위해서는 CLLocationManager가 필요하다. 또한..

iOS/UIKit 2022.11.13

UIKit ;; Mapkit으로 지도에 현 위치 표시하기 1탄 (지도를 화면에 띄우고, 초기 위치 설정하기)

내가 구현을 맡은 뷰!! 지도 하단의 버튼을 눌렀을 때 현재 위치를 지도에 띄워주고, 해당 위치를 하단에 표시해주는 작업이 필요하다. MapKit 사용 이유 지도를 구현할 때는 네이버맵, 카카오맵 등 여러가지 방식이 있지만 Mapkit을 사용하기로 결정했다. 이유는 맵킷이 애플에서 제공하는 first party이기도 하고, 타 맵 같은 경우 API를 불러오는 과정이 번거롭다. 네이버지도의 경우에는 CocoaPods을 통해서 설치를 해주어야 하기 때문에 번거롭다. 추가로, 키 발급과 더불어 파일 내부에 넣어주는 작업까지 필요하다. *참고 https://github.com/navermaps/ios-map-sdk GitHub - navermaps/ios-map-sdk: 네이버 지도 iOS SDK 데모 앱 네이..

iOS/UIKit 2022.11.13

Swift ;; split 와 components 차이 알아보기

정의 split의 반환값은 [SubSequence(Substring)] components의 반환값은 [String] 활용 split - separator는 쪼개는 기준을 의미한다. 상단 예시에서는 " " -> 공백을 기준으로 쪼개라는 의미 (생략 불가능) - maxSplits는 쪼개는 횟수를 의미한다. 0보다 커야 한다. (생략 가능하며, 생략 시 separator 기준으로 모두 쪼갬) - 상단 예시에서는 maxSplits에 1 -> 1번 쪼개라는 의미로 separator로 설정한 공백을 처음 기준으로 한 번 쪼개어 해당 결과가 나왔다. - ommitingEmptySubsequences는 true로 설정 시, 쪼개는 단위인 separator 뒤에 아무것도 없다면 출력되지 않는다. false로 설정 시,..

iOS 2022.09.14