분류 전체보기
-
BundleiOS 2020. 3. 13. 16:00
Bundle, 번들. 고유명사가 되어버린 "번들"은 말은 많이 들어봤지만 막상 "그래서 번들이 뭐야?" 라고 물으면 대답하기 쉽지 않았습니다. 그래서 번들이 뭔지 한번 살펴보고자 합니다. apple document 문서의 bundle 을 참고하여 번역했습니다. 부족한 실력으로 인해 오역이나 의역이 꽤나 많이 있을 수 있습니다. 감안하고 봐주세요 😭 번역이 어색한 단어는 굳이 번역하지 않고 영어 발음을 그대로 사용하였고 영어 표현 그대로가 의미 전달에 좋겠다 싶은 부분은 영어 원문을 그대로 사용했습니다. 번들 (Bundle) 번들은 파일 시스템의 디렉토리로서 실행 코드, 이미지, 소리같은 관련 자원(resource 이하 리소스) 등을 한 공간에 그룹짓습니다. iOS 그리고 OS X에서 application..
-
Programmers) Lv3 섬 연결하기Algorithm/Programmers 2020. 3. 6. 19:39
출처: https://programmers.co.kr/learn/courses/30/lessons/42861 분류: Lv3 , Greedy MST의 대표적인 문제입니다!!! Prim 알고리즘으로 해결해봤는데요. 자세한 설명은 이론 설명 그 자체일 듯 합니당 다음글을 참고해주세용 :) /** * 현재 노드에 연결되어 있는 노드만 확인할 것이기 때문에 * 간단하게 목적지와 비용만 저장하는 Edge 를 정의합니다. */ struct Edge { var destination: Int var cost: Int } func updateDist(_ tree: [Edge], dist: inout [Int?]) -> [Edge] { for edge in tree { if let d = dist[edge.destinati..
-
프림 알고리즘Algorithm/Theory 2020. 3. 6. 17:13
- MST(Minimum Spanning Tree)를 만드는 방법 중 하나입니다. - 현재 트리를 기준으로 가장 최소인 점을 찾아나가는 방식입니다. - 사이클을 확인할 필요가 없습니다. (현재트리를 기준으로 하기 때문에 사이클이 생기지 않습니다.) 프림 알고리즘은 현재까지 생성된 트리를 기준으로 가장 최소 비용의 간선을 선택해서 트리를 확장시켜 나갑니다. 현재 트리를 기준으로 한다는 말 속에는 이미 방문한 점은 방문하지 않는다는 말이 포함되어 있습니다. 때문에 자연스럽게 사이클이 생기지 않습니다 :) 과정은 간단합니다. 1. 현재 트리를 기준으로 최소 비용으로 방문 가능한 점을 방문합니다. 2. 새로운 점을 기준으로 최소 간선의 목록을 업데이트 합니다. 직접 문제를 하나 풀어보면 쉽게 이해하실 수 있으실..
-
Protocol에서 Optional 선언iOS 2020. 3. 4. 16:06
protocol에서 optioanl 을 사용하면 다음과 같은 오류를 만나게 됩니다. 'optional' can only be applied to members of an @objc protocol Swift document를 보면, Swift는 optional을 사용하려면 반드시 @objc 를 붙여주라고 하고 있네요, class는 Objective-C 를 상속받거나 @objc가 붙은 클래스에서만 사용이 가능하니 당연히 struct나 enum에서는 사용할 수 없겠죠? swift는 protocol에서 optioanl을 지원하지 않으니, 대신 @objc 를 지원하는 @objc 를 사용하는 것이 가장 쉬운 방법이 되겠습니다. @objc protocol CounterDataSource { @objc optiona..
-
StackComputer Science/DataStructure 2020. 3. 3. 14:54
- 선형 자료구조 - LIFO (후입선출) 선형 자료구조의 일종. Last In First Out (LIFO) 방식으로, 나중에 들어온(push) 원소가 먼저 나온다.(pop) 접시를 위로 쌓아놓은 형태를 떠올리면 쉽다. 따라서 스택의 앞에 원소를 넣는 것은 O(n)이고 스택의 뒤에 추가하는 것은 O(1)의 시간복잡도를 갖는다. 참고로 CPU는 function 이나 method의 return 주소를 스택에 넣는데, 재귀 함수 등과 같이 함수가 종료되기 전에 너무 많은 함수를 호출해 CPU의 스택이 부족해지면 "stack over flow"가 발생한다. Implement Swift는 사실상 내부적으로 Stack을 이미 지원하고 있다고 볼 수 있다. public struct Stack { fileprivat..
-
포토샵, 일러스트 웹, 앱용 이미지 @2x @3x 변환iOS 2020. 3. 3. 00:12
안녕하세요. 오늘은 제가 겪었던 문제와 실험(?)에 대해 포스팅해보려고 합니다. 혹시 제목을 보고 포토샵, 일러스트 웹, 앱용 이미지 @2x @3x 변환 방법이 궁금하셔서 오셨다면 포토샵, 일러 를 참고하시면 될 것 같아요 :) 포토샵, 일러 등에서는 이미지의 크기를 자동으로 키워주는 기능을 제공하고 있습니다. 그런데!!!!! 그렇게 해서 이미지를 변환시켰을 경우 Assets.xcassets 의 프리뷰로 보면 크기가 다 똑같아 보이는 현상을 겪었습니다. 이렇게 말이죠... 크기가 다 동일하게 보여요 ... 😢 어도비에서 제공하는 기능을 사용하지 않고 일일이 크기를 2배, 3배 키워주면 제대로 보이는데 말이죠... 이렇게 잘 나오는데 ㅠㅠㅠㅠㅠ 뭐가 문제인지 한참 찾아보았으나... 답은 찾을 수가 없었습니..
-
iOS) simulator에서 API erroriOS 2020. 3. 1. 20:48
Error log API error: returned 0 width, assuming UIViewNoIntrinsicMetric keyboard datePicker를 view.endEditing(true) 를 통해서 닫지 않고 바깥 화면을 클릭해서 닫았을 경우 에러 발생었습니다. 아마 simulator를 사용할 경우 발생할텐데 Hardware -> Keyboard -> Toggle Software Keyboard 다음 방법으로 해결하였습니다. :)
-
iOS) Realm Numeric OptionaliOS 2020. 2. 28. 09:06
Property cannot be marked @objc because its type cannot be represented in Objective-C 다음과 같은 에러가 발생한다면 숫자를 optional로 생성하려고 한 것은 아닌지 확인해보셔야 합니다. String, Date, Date는 표준 Swift 문법을 따르면되지만, Int, double과 같은 numeric 타입들은 단순히 Int? Double? 와 같은 optional 타입으로 하면 안되고 RealmOptional() 타입을 사용해서 RealmOptional 변수의 value 프로퍼티를 이용해야합니다. 그리고 @objc dynamic var 가 아니라 let 을 사용합니다. realm document 에는 다음과 같이 나와있습니다. Req..