PickerView를 textField를 통해 사용하려 시도했습니다. 하지만 외부로부터 textField에 입력을 완전히 막으면서 PickerView를 사용하는 방법은 찾기 힘들었습니다. textField에 내용을 입력시키지 않기위해 user Interaction Enable을 false하게 되면 이벤트가 발생하지 않아 PickerView를 띄울 수 없었고 그렇다고 그냥 사용하면 PickerView로 인해 키보드는 나오지 않지만 붙여넣기 등으로 값을 변경 가능했습니다. 그래서 생각한 방법이 textField 대신 UIButton을 통해, 외부의 입력을 막으면서 PickerView를 사용하는 것입니다. 의아해 하실 수 도 있지만 방법은 이러합니다. 모든 UI 요소는 storyboard로 진행했습니다. 1...
HTTP 통신을 위해 Swift 에서 대표적으로 이용되는 Alamofire 라이브러리를 사용하였다 Alamofire를 통해 서버에 API를 요청하고 JSON Object 형태로 받는다. JSON Object를 JSONDecoder로 사용하기 좋게 변환한다. JSONDecoder는 JSON의 타입을 Data 타입을 요구한다. 이를 위해 JSONSerializaton을 사용하여 JSON Object를 JSON Data 형태로 변환시킨다. JSON Object 의 형태를 그대로 가져온 struct 를 미리 만들어 놓았다. 예를 들어 JSON Object의 형태가 "person" : [ { "name" : "Zartt" "age" : 24 } ] 이러한 형태라면 struct APIResponse: Codable..
동작 원리 배열의 모든 인덱스를 돌며 정해진 규칙에 따라 자리를 바꿔 정렬 시간 복잡도 O(N^2) // n - 1 + n - 2 + ... + 2 + 1 = n * (n - 1) / 2 과정 반복문을 통한 배열 방문 -> 인접한 두 값 비교 - > 기준에 적합할 시 자리바꿈 위 과정 반복 코드구현 #include using namespace std; void swap(int& n1, int& n2) { int temp = n1; n1 = n2; n2 = temp; } void bubbleSort(int arr[], int size) { for(int i = 0; i arr[j..

Naver Map API Location Button 오류를 확인했습니다. Xcode version: 11.6 iOS version: 13.5 - 13.6 Location Button을 사용하기 위해 Info.plist에 사용자 권한을 요청하는 구문을 추가하여야합니다. 프로젝트를 새로 만들어 Naver Map API 문서를 참고하여 기본설정을 했음에도 불구하고 버튼이 작동하지 않았습니다. 3-4개월 전쯤 만들어두었던 프로젝트에 ViewController를 하나 생성하고 이전 프로젝트에서 사용했던 코드와 Info.plist 설정을 그대로 가져와 실행해 보았습니다. 이 프로젝트에서는 왜인지 작동이 되네요. 비교해 본 결과 이미 만들어 두었던 프로젝트에서는 사용자 권한 요청 Alert가 있었고, 새로 만든 프..
화면 전환에서 현재 뷰를 dismiss 혹은 navigationViewController에서 pop 한 후 다른 뷰를 present 혹은 push 하는 부분에서 막혔던 과정을 포스팅해보겠습니다. 현재 뷰의 계층 상태는 rootView 와 각 각 다른 정보와 기능을 다루는 2개의 뷰로 이루어져 있습니다. 편의상 rootView, childView1, childView2 로 부르겠습니다. rootView에서 childView1을 불러오고 childView1 에서의 작업을 끝내고 childView2로 넘어가려고 합니다. childView1은 더 이상 남아있을 필요가 없기때문에 childView2로 가기전 childView1을 없애주고 넘어가려고 합니다. 떠오른 생각은 'childView1를 종료하고 compl..
토이프로젝트로 채팅 어플을 만드는데 Server 와 Data 처리를 위해 Firebase를 사용했습니다. 대부분 data를 Database().dateabase().reference().child("...")... 와 같은 방법으로 받아와 처리하였고, Database().dateabase().reference().child("...").setValue(***, withCompletionBlock: ***) 와 같은 방법으로 데이터를 서버로 전송했습니다. 처음 채팅방을 만들 때 먼저 방이 이미 존재하는 지를 체크하고 채팅방이 존재한다면 주고 받았던 메세지 등 채팅방 정보를 가져오고,채팅방이 존재하지 않는다면 아무 작업을 하지 않고 메세지 전송을 클릭하면 방이 생성되고 그 후 메세지를 보내는 형태로 구성하려..
오늘은 API를 사용해 보겠습니다. API를 직접 발급 받아 사용해 보는 것은 처음이네요. 네이버 영화 검색 API를 Java에서 사용해 보겠습니다. 먼저 API를 발급 받기위해서 developer.naver.com 로 들어가 API를 요청을 해야합니다. (방법은 네이버 개발자센터 홈페이지에서 자세히 알 수 있습니다.) 신청하면 ID와 Secret 값을 받을 수 있습니다. 이렇게 API를 신청하면 사전 준비는 끝이 납니다. 이제 Eclipse 로가서 코딩을 해보겠습니다. 먼저 API요청으로 받아둔 ID와 Secret 값을 "???" 대신 입력해 줍니다. 그리고 검색어를 입력받기 위해 Scanner 객체를 준비합니다.(java.util.Scanner를 import 해주어야 합니다.) 입력 받은 검색어는 s..
- Total
- Today
- Yesterday
- RxSwift
- subject
- 프로파일
- rxcocoa
- Apple
- 코드사이닝
- CSR
- MVC
- ios
- provisioning profile
- TabBar
- 프로비저닝
- Clean Architecture
- TextField
- MVVM
- relay
- 동적계획법
- 코테
- remote
- 클린아키텍처
- Push
- Swift
- dip
- APNS
- Crossing Boundaries
- 아키텍처
- notification
- 프로비저닝 프로파일
- Rx
- certificate
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |