반응형

분류 전체보기 234

[iOS, Xcode] 핸드폰에서 GPS 설정하기(gpx 파일)

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. 프로젝트에 GPX 파일을 추가합니다. GPX 파일의 형식은 위와 같이 되어있고, wpt태그 안에 있는 lat, lon 속성에서 값을 설정할 수 있습니다. XCode 아래에 있는 화살표 버튼을 클릭하여 위치 변경을 할 수 있습니다. 핸드폰에서 MapKit을 활용해 실행하면 위와 같이 좌표가 설정되어있는 것을 확인할 수 있습니다.

iOS/팁 2023.02.15

[iOS, Swift] 구조체와 클래스의 차이

구조체는 값 타입이고 클래스는 참조 타입입니다. 값 타입과 참조 타입이 다른 점은 값 타입을 넘긴다면 전달될 값이 복사되어 전달됩니다. 참조타입을 넘긴다면 참조(주소)를 복사하여 전달됩니다. 애플의 가이드라인에서는 다음 조건 중 하나 이상 해당된다면 구조체를 사용하는 것을 권장합니다. - 연관된 간단한 값의 집합을 캡슐화하는 것만이 목적일 때 - 캡슐화한 값을 참조하는 것보다 복사하는 것이 합당할 때 - 구조체에 저장된 프로퍼티가 값 타입이며 참조하는 것보다 복사하는 것이 합당할 때 - 다른 타입으로부터 상속받거나 자신을 상속할 필요가 없을 때

iOS/문법 2023.02.13

[iOS, Swift] DFS 전위, 중위, 후위 탐색

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. class Node { var nodeData: Int? var lt: Node? var rt: Node? init(value: Int) { nodeData = value lt = nil rt = nil } } var tree: Node = Node(value: 1) tree.lt = Node(value: 2) tree.rt = Node(value: 3) tree.lt?.lt = Node(value: 4) tree.lt?.rt = Node(value: 5) tree.rt?.lt = Node(value: 6) tree.rt?.rt = Node(value: 7) // 전위순회 func DFS_전위(root: Node?)..

iOS/알고리즘 2023.02.12

[웹서버, NginX] NGINX 쿡북

"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 서버 배포를 할 때에 초기 세팅을 하는 부분이 가장 어려운 점인데, 그 부분을 1챕터에서 잘 설명해주는 것이 좋았습니다. 그리고 책에 NGINX에 대한 기능을 다 넣다보니, 책에서 설명하는 기능 중 하나가 어디에 쓰이는 것인지 잘 모를 수가 있는데, 문제 - 해결- 논의 단계로 설명해주는 글이 있어서 기능을 어디서 어떻게 활용하고 쓰이는지 알 수 있었습니다. 예를 들면 문제 - 사용자 반응을 보기 위해 버전이 두개 이상인 파일로 분기 해결 - 사용자 요청을 지정된 비율에 따라 분기하여 전달 (자세한 설명) 논의 - A/B 테스트는 전환율을 측정하는데 유용 (자세한 설명) 예시를 들며, NGINX에 대해 처음 접하는 독자도 기능이 어디에 활용될..

iOS/책 2023.02.10

[iOS, Swift] Swift 문법 compactMap 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. nil 값을 가질 수 있는 객체를 뜻하는 Optional은 값을 감싸고 있는 객체입니다.compactMap은 이러한 감싸고 있는 객체를 제거하고 평평하게 (flatMap으로 쓰였으나, 스위프트 4버전 이후로 compactMap으로 불립니다.) 만든 후 컨테이너로 감싸주는 역할을 합니다. let optionalIntArray = [Optional(1), Optional(2), nil, Optional(3)] let result = optionalIntArray.compactMap({$0}) print(result) // [1, 2, 3]

iOS/문법 2023.02.09

[iOS, Swift] Swift 문법 Reduce 예제

iOS 16.1, Xcode 14.1, Swift 5, UIKit 환경에서 진행했습니다. 컨테이너에서 사용할 수 있는 Reduce 함수는 두가지 종류가 있습니다. initialResult와 nextPartialResult를 쓰는 함수는 초기값이 initialResult에 들어가고 nextPartialResult에 값이 업데이트 되는 함수입니다. let sum1 = [1, 2, 3].reduce(0) { partialResult, next in // partialResult = 0, next = 1 // partialResult = 1, next = 2 // partialResult = 3, next = 3 return partialResult + next } 결과로는 sum1 변수에 6이 저장됩니다. i..

iOS/문법 2023.02.07
반응형