iOS
-
info.plist 파일 옮기기iOS 2020. 4. 4. 22:36
보통 디렉토리를 구성할 때 info.plist 파일은 Supporting Files 라는 디렉토리 밑에 두는 경우가 많은 것 같습니다. 하지만 info.plist 를 바로 옮기면 Build input file cannot be found: 이런 문제가 발생하면서 info.plist 파일을 찾을 수가 없다는 에러가 발생합니다. 어떻게 해야할까요? 먼저 간단한 확인이 필요합니다. info.plist 파일을 클릭하시고 우측에 Location을 프로젝트 내에서 찾을 수 있도록 Relative to Project 로 바꿔줍니다. 이제 프로젝트를 선택하시고 Target > Build Settings > Packing 밑에 info.plist File 을 찾아서 원하는 경로로 변경해줍니다. 저는 Supporting ..
-
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..
-
iOS) core data, transformable erroriOS 2020. 2. 19. 21:19
[error] fault: One or more models in this application are using transformable properties with transformer names that are either unset, or set to NSKeyedUnarchiveFromDataTransformerName. Please switch to using "NSSecureUnarchiveFromData" or a subclass of NSSecureUnarchiveFromDataTransformer instead. At some point, Core Data will default to using "NSSecureUnarchiveFromData" when nil is specified, ..