본문 바로가기

전체 글213

lottie-ios dataCorrupted error Lottie를 cocoapod를 이용해서 설치하고 사용하려는데, 특정 json 파일 parsing 시에 dataCorrupted error 가 발생했습니다. Swift.DecodingError.Context Cannot initialize TextJustification from invalid Int value 6... 대략 이런 종류의 에러였습니다. 에러 코드를 검색해봐도 시원한 답변이 나오지 않아서 고민하던 차에, version을 낮추어 보라는 이야기를 보게되었습니다. Lottie 설치 당시에는 3.2.3 버전으로 설치가 되었던 것을 2.5.3으로 낮추어 주었더니 해결이 되었습니다. JSON 자체를 수정할 수도 있다지만, 너무 방대한 데이터이기도 하고 어떤 부분을 어떻게 고쳐야할 지 몰라서 그냥 버전.. 2022. 12. 8.
Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" 에러 해결 방법 회사 서비스를 만드는데, 간혹가다 아래와 같은 (무시무시한) 에러가 발생하곤 했습니다. 🥹 아직 XCode 에러 보는 게 익숙치 않은 것인지 모르겠지만 IntelliJ 보다 에러에 대한 설명이 좀 이해하기 어려운 느낌입니다. 2022-12-02 19:00:04.318481+0900 [30255:13156019] Task . finished with error [-1002] Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL" UserInfo={NSLocalizedDescription=unsupported URL, NSErrorFailingURLStringKey=nil, NSErrorFailingURLKey=nil, _NSURLErrorRelatedURL.. 2022. 12. 2.
날짜 사이 일수 구하기 let createdDate = "2022-10-31T04:10:30.345784" Calendar.current.dateComponents([.day], from: createdDate.toDate() ?? Date(), to: Date()).day! createdDate과 현재 시점의 날짜 사이의 일수를 구할 수 있는 방법입니다. Date()은 현재 시점의 date 정보를 나타냅니다. 2022. 12. 2.
Substring 표현방법 String을 잘라서 원하는 만큼만 표현하고 싶을 때, 어느 위치까지 자를 것인지 index를 이용해서 substring을 만들 수 있습니다. 예를 들어서, "2022-12-31T04:10:30.345784" 를 T 앞까지 잘라서 "2022-12-31"만 표현하고 싶다면 어떻게 할 수 있을까요? 다양한 방법이 있겠지만, 최근에 알게된 방법은 마치 Array의 원소를 가져오듯이 []를 사용해서 substring을 만드는 방법이 이었습니다. []안에는 index range를 넣어주면 됩니다. 저는 날짜 형식의 String에서 앞부분 연월일만 빼내고 싶어서 방법을 찾던 중 알게 되었습니다. let createdDate = "2022-12-31T04:10:30.345784" let endIndex = creat.. 2022. 12. 2.
RxSwift-Observable, Subject, Relay 알아보기 RxSwift에서 가장 핵심이 되는 개념인 Observable과 Observer. 그 중에서도 먼저 알아야 할 Observable에 대해서 정리해보고자 합니다. 이름이 생소하지만, observable이라는 단어 자체를 해석해보면, '관찰할 수 있는/ 볼 수 있는 대상' 이라고 할 수 있습니다. Observable이 가지고 있는 요소들을 통틀어서 'event'라고 하는데, 이 event들을 누군가가 '관찰'할 수 있습니다. 이때 관찰을 하는 쪽을 observer라고 합니다. Observable을 Observer가 관찰하는 것이죠. '관찰할 수 있는 대상을 관찰한다' 라고 해석하면 되는데, 말이 조금 헷갈리네요 ㅎㅎ Observer는 자신이 관찰(구독)하는 observable에 담겨 있는 이벤트 정보들을 받.. 2022. 11. 19.
RxSwift-Operator 종류 알아보기: Interval RxSwift가 지원하는 Operator 중에서 Interval에 대해 알아보겠습니다. Interval Interval은 일정한 시간 간격을 두고 event를 방출하는 Observable을 생성하는 operator입니다. 원하는 시간 간격과 몇개의 event가 emit되도록 할 것인지 설정할 수 있습니다. 만약 emit될 event의 수를 명시하지 않으면 멈추지 않고 event가 emit되기 때문에 주의해야 합니다. 어떻게 사용하는지 코드를 살펴보도록 하겠습니다. let observable = Observable .interval(.milliseconds(1000), scheduler: MainScheduler.instance) //observable의 type은 Observable 입니다. Interv.. 2022. 11. 18.
NavigationBar 색상 및 타이틀 색상 변경하기 안녕하세요! Navigation Controller에서 NavigationBar의 색상과 타이틀 색상을 아래처럼 변경하는 방법을 알아보겠습니다 :) 강의를 듣다가 NavigationBar의 색상과 타이틀 색상을 위와 같은 형태로 설정할 일이 있었는데요, 그대로 따라 해봐도 저렇게 예쁘게 나오지 않고, 아래 사진처럼 navigation bar 부분만 띠 처럼 변경되더라구요. 아일랜드가 있는 부분까지 색상이 다 채워졌으면 하는데, 아래 영역까지만 나오는 것을 보니 아이폰 시리즈별로 윗 부분이 형태가 달라서 그런 것 같다는 생각이 들었습니다. 검색을 해보고 navigation bar의 appearance를 설정하는 방법을 새로이 알게되었습니다. 바로 UINavigationBarAppearance() 를 사용하.. 2022. 11. 12.
URLComponents URLComponents를 사용하면 간편하게 URL 요소들을 다룰 수 있습니다. 물론 URLComponents를 사용하지 않고도 아래처럼 URL을 만들 수는 있습니다. private func buildURL(post: String, id: String) -> URL? { return URL(string: "https://ittingz.tistory.com/?post=\(post)&id=\(id)") } 하지만 query item의 종류가 많아질 수록 일일이 string interpolator 형태로 작성하기도 번거롭고 오타가 나면 발견하기 어려울 수 있습니다. URLComponents를 사용하면 어떻게 될 지 한 번 볼까요? private func useURLComponents(post: String, .. 2022. 11. 11.
Cannot find AF in scope - Alamofire 관련 에러 Cocoapods를 사용해서 Alamofire를 install 했지만, XCode에서 AF를 사용하려고 할 때 아래와 같은 에러가 발생했습니다. Cannot find AF in scope 다행히 StackOverFlow에서 제안한 방법이 해결에 도움을 주었습니다. XCode에서 Product -> Scheme -> Manage Schemes 으로 들어간 다음, Alamofire 항목을 true로 바꾸어 주니 해결되었습니다. 자세한 내용이나 해당 에러의 다른 해결법은 아래 링크를 참고하시면 됩니다! https://stackoverflow.com/questions/37385275/xcode-cant-find-alamofire-error-no-such-module-alamofire Xcode can't fin.. 2022. 11. 10.
반응형