uikit 2

UIViewRepresentable View 레이아웃 업데이트 (UILabel Height 조절), SwiftUI lineBreakMode

SwiftUI로 프로젝트를 진행하면서 SwiftUI에서 제공해주는 기본 UIComponent로는 커스텀할 수 없는 영역도 분명 존재한다. 그래서 종종 UIKit에서 사용하는 컴포넌트를 SwiftUI View 구조체에 삽입하고는 하는데, 이때 발생한 트러블슈팅에 관련된 내용을 게시하려고 한다. SwiftUI에 UIKit의 UIView를 사용하려면 UIViewRepresentable 프로토콜을 채택한 struct를 사용해야한다. https://developer.apple.com/documentation/swiftui/uiviewrepresentable 기본적으로 UIViewRepresentable을 채택하면 해당 구조체는 다음 두 함수를 필수로 구현해야 한다. public protocol UIViewRepr..

회고 2024.02.05

NSCache 파일 key - value 설정 실수

토이프로젝트 진행 중 URLSession에서 가져온 이미지 데이터를 Filemanager, NSCache를 사용하여 기기 메모리 캐싱, 디스크 캐싱을 시도했다. 이미지를 View에 할당하는 과정은 다음과 같이 작동한다. NSCache로 메모리 캐시에서 이미지 파일을 검색 후 있으면 View에 이미지 할당하고 없으면 FileManader를 검사한다. FileManager로 디스크 캐시에서 이미지 파일을 검색 후 있으면 View에 이미지 할당하고 NSCache로 메모리 캐시에 이미지 파일을 저장한다. URLSession으로 파일을 다운한다. URLSession으로 이미지 파일을 서버로부터 다운 후 View에 이미지 할당하고 FileManager로 디스크 캐시에 이미지 파일을 저장하고 NSCache로 메모리 ..

실수 2023.06.19