분류 전체보기 117

[iOS] url로 부터 이미지 다운로드하기

오늘의 결과 화면입니다. API를 통해서 가져온 데이터 중 이미지를 포함하고 있는 url로부터 ImageView에 이미지를 할당하는 방법을 알아보겠습니다. (API를 연동해서 데이터를 가져왔다고 가정하고 진행하겠습니다.) // url 변수의 타입은 URL입니다. if let data = try? Data(contentOf: url) { imageView.image = UIImage(data: data) } // 예시 if let data = try? Data(contentsOf: leagueScheduleTableViewCellModel.homeTeamImageUrl) { homeTeamImageView.image = UIImage(data: data) } 하지만 받아올 이미지 크고, 많으면 다음과 같이..

[iOS / Kingfisher / Error] failed: Processing image failed. Processor: DownsamplingImageProcessor(size: (0.0, 0.0) .. 에러 해결

Kingfisher를 이용해서 이미지를 가져올 때, 로딩이 되지 않는 이미지가 발생하면서 위와 같은 에러가 발생했습니다. 찾아보니 Processor에게 타당한 imageView.bounds.size를 전달하지 않아 발생한 에러입니다. Controller에서 cell을 생성하고 셀의 UI를 세팅하고 셀 내부 뷰의 프로퍼티를 업데이트하는 방식으로 구현했습니다. cell 내부 코드에서는 cell이 생성되기 전이기 때문에 cell의 크기를 0으로 인식해서 발생한 에러입니다. 기존에는 cell에서 정의한 ImageView의 크기에 맞게 설정한 것에서 매개변수에 직접 값을 설정하는 방식으로 바꾸니 에러가 해결됐습니다. ※ 참고 출처 Kingfisher/issues DownsamplingImageProcessor i..

Error 2022.01.25

[GitHub / iOS / Xcode] GitHub의 원격 저장소(Remote Repository) 생성하기

오늘의 결과 화면입니다. Xcode로 작업한 프로젝트를 GitHub의 레포지토리에 저장해보겠습니다. ※ Xcode에서 GitHub 계정을 연동한 상태에서 진행합니다. [Step 1] New Remote... 클릭 Xcode 좌측 Navigator에서 Show the Source Control navigator 클릭 -> main 우클릭 -> New Remote... 클릭 [Step 2] 해당 프로젝트의 원격 생성 레포지토리명, 레포지토리 볼 수 있는 권한, Remote Name 설정하고 Create 레포지토리 생성 완료! 이제 프로젝트를 수정 후, terminal에서 프로젝트의 경로로 이동해서 add + commit + push를 하게 되면 해당 레포지토리가 업데이트됩니다.

Git 2022.01.25

[iOS / Xcode / Error] Failed to save Pods.xcodeproj 에러 해결

CocoaPods으로 Kingfisher를 설치하고 Xcode에서 다음과 같은 에러가 발생했습니다. 찾아보니 Project 파일이 Xcode에서 수정되지 않아 병합 충돌이 발생한 것입니다. 문제 해결을 위해 두 가지 해결책을 제시합니다. * Read Form Disk: 디스크에 저장된 변경사항을 기준으로 병합 * Keep Xcode Version: 현재 상태를 유지 ※ 참고 출처 stackoverflow Xcode error: "Failed to save .xcodeproj" I encountered an error message I have never seen before in Xcode. It is alerting me that it failed to save the project because it..

Error 2022.01.18

[iOS / CocoaPods / Error] CocoaPods could not find compatible versions ... 에러 해결

CocoaPods를 이용해서 Kingfisher를 설치하다가 위와 같은 에러가 발생했습니다. 왠지 Mac Air라서 생긴 에러인 것 같아서 찾아보니 역시나 M1 칩으로 생긴 오류였습니다. 해당 에러를 해결해보겠습니다. 터미널에서 해당 프로젝트 경로로 가서 다음의 명령문을 순서대로 입력 sudo arch -x86_64 gem install ffi arch -x86_64 pod install 그래도 안 된다면 arch -x86_64 pod install --repo-update ※ 참고 출처 stackoverflow Cocoapods subspec issue: None of your spec sources contain a spec satisfying the dependency I modified a rep..

Error 2022.01.18

[iOS / Error] Main Thread Checker: UI API called on a background thread 에러 해결

API를 통해 가져온 데이터로 UI를 업데이트할 때 DispatchQueue.global().async 를 사용했더니 위와 같은 에러가 발생했습니다. 찾아보니, UI 업데이트와 관련된 작업은 main thread에서 실행해야 하는데 background thread에서 실행해서 발생한 에러입니다. Xcode에서 제공하는 runtime tools 중 Main Thread Checker가 있는데 이 tool은 기본 스레드에서 실행해야 하는 시스템 API가 실제로 해당 스레드에서 실행되는지 확인합니다. AppKit 및 UIKit UI API에 적용되며, 일부 다른 시스템 API에도 적용됩니다. 기본 스레드에서 이러한 API를 호출하면 관련 작업의 실행을 직렬화하여 경합 조건을 방지할 수 있습니다. 이는 시각적 ..

Error 2022.01.18

[iOS / Xcode / Console / Log] Class _PathPoint is implemented in both... 로그 분석

Xcode 13으로 업데이트 후 위와 같은 로그가 발생했습니다. 찾아보니 Objective-C로 런타임 시, _PathPoint와 _PointQueue라는 두 개의 동일한 클래스가 생성되어 둘 중 하나를 사용될 것이라는 로그입니다. 따라서 무시해도 상관없는 로그 노이즈라고 합니다. ※ 참고 출처 stackoverflow Class _PointQueue is implemented in both when I click on textfield... How can I resolve this issue? I'm using xcode 13 and making a demo on coredata. objc[6188]: Class _PathPoint is implemented in both /Applications/Xc..

Xcode 2022.01.17

[iOS / Xcode / Console / Log] Writing analzed variants 로그 분석

Xcode 13으로 업데이트 후 위와 같은 로그가 발생했습니다. 사실 해당 로그가 나타나도 빌드나 앱 실행에 영향을 미치는 것 같지는 않았습니다. 찾아보니 해당 로그는 Xcode 로그 노이즈이며 무시해도 상관없다고 합니다. ※ 참고 출처 stackoverflow Xcode log "Writing analzed variants" Running Xcode 13 I see the following log when launching my iOS app in the Simulator: Writing analzed variants. Note that this is, hopefully, a misspelling of the log: Writing analyzed variants. ... stackoverflow.com

Xcode 2022.01.17

[iOS / Swift] 107. Dictionary

107. Dictionary Dictionary 선언 기본 선언 var a = [String: Int]() var a: [String: Int] = [:] var a: [String: String] = ["name": "Lee", "nickName": "kingkong"] Dictionary 활용 초기화 var dictionary = [String: Int]() if dictionary["count"] == nil { dictionary["count"] = 1 } else { dictionary["count"]! += 1 } /* key에 대한 개수를 세고 싶을 때 값이 없다면(nil) 1, 있다면 += 1 */ 수정 var dictionary: [String: String] = ["name": "Lee..

Swift 문법 예시 2022.01.17