ios
-
associatedTypeSwift 2020. 3. 18. 16:52
오늘은 associatedType 에 대해 알아보겠습니다! associatedType을 이해하기 위해서는 Protocol 과 Generic 에 대해 먼저 이해하고 계셔야합니다. 왜냐하면 associatedType 은 Protocol을 위한 Generic 이라고 생각하시면 되기 때문이죠. 🙃 정의 공식 문서에서는 다음과 같이 설명하고 있어요. An associated type gives a placeholder name to a type that is used as part of the protocol. The actual type to use for that associated type isn’t specified until the protocol is adopted. associated type 은 p..
-
@discardableResultSwift 2020. 3. 18. 13:42
안녕하세요 :) 오늘은 @discardableResult 에 대해서 알아보겠습니다. 그냥 글자 그대로 보고 한번 유츄해볼까요? 버릴 수 있는 결 과....? 네 정답입니다. 말 그대로에요. Swift에서는 개발자를 위해 여러가지 warning들을 띄워줍니다. " 값이 변하지 않으면 var 대신 let을 사용하세요. " " 변수가 사용되지 않았으니 _ 를 사용하세요. " 등등... 마찬가지로! Result of call to ' ~~~~~ ' is unused 결과 값이 사용되지 않았습니다. 라는 워닝도 있습니다. 하지만 결과를 return 하는데 이 결과가 필요 없는 경우도 있겠죠. 이 때 warning 보기싫다? 그럴 때 사용하시면 됩니다. func log(_ msg: String) -> String ..
-
TextView 라인 수 구하기iOS 2020. 3. 16. 19:07
TextView는 TextField 와 달리 여러 줄의 텍스트를 입력할 수 있습니다. 하지만 따로 라인 수를 제공하지는 않죠... 라인 수를 알고 싶다면 직접 계산해서 구해야 합니다 ㅠㅠ 급하신 분들을 위해 결론부터 말씀드리겠습니다. extension으로 만들어봤어요 :) extension UITextView { func numberOfLine() -> Int { let size = CGSize(width: frame.width, height: .infinity) let estimatedSize = sizeThatFits(size) return Int(estimatedSize.height / (self.font!.lineHeight)) } } 기본 UITextView는 contentSize나 textCo..
-
BundleiOS 2020. 3. 13. 16:00
Bundle, 번들. 고유명사가 되어버린 "번들"은 말은 많이 들어봤지만 막상 "그래서 번들이 뭐야?" 라고 물으면 대답하기 쉽지 않았습니다. 그래서 번들이 뭔지 한번 살펴보고자 합니다. apple document 문서의 bundle 을 참고하여 번역했습니다. 부족한 실력으로 인해 오역이나 의역이 꽤나 많이 있을 수 있습니다. 감안하고 봐주세요 😭 번역이 어색한 단어는 굳이 번역하지 않고 영어 발음을 그대로 사용하였고 영어 표현 그대로가 의미 전달에 좋겠다 싶은 부분은 영어 원문을 그대로 사용했습니다. 번들 (Bundle) 번들은 파일 시스템의 디렉토리로서 실행 코드, 이미지, 소리같은 관련 자원(resource 이하 리소스) 등을 한 공간에 그룹짓습니다. iOS 그리고 OS X에서 application..
-
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..
-
포토샵, 일러스트 웹, 앱용 이미지 @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..