iOS/Swift74 Existential Type (any) Existential Type이란 기존 Protocol을 통한 추상 타입을 타입으로서 사용하는 경우를 말한다. 여태껏 사용했던 타입으로서의 프로토콜이 Existential Type이다. any 키워드가 등장한 배경은 컴파일 시점에 프로토콜을 채택하고 있는 명확한 타입을 모르므로 Dynamic Dispatch를 사용하여 진행하는데, 이는 컴파일 시점에 프로토콜을 참조하고 있는 객체를 컨테이너에 저장(Boxing values of protocol types)하고 테이블을 참조하여 실행되어야 할 특정 기능을 찾는 데에 비용을 소모하기 때문에 무분별한 사용을 줄이고자 any 키워드를 붙여 개발자에게 명시적으로 보여주기 위함이다.In addition to heap allocation and reference co.. 2025. 3. 2. [Swift] Opaque Types Opaque Types불투명한 타입으로, 메서드 및 변수, 파라미터등의 타입을 감추는 방법을 의미한다반환되는 구체 타입은 구현부에서 알 수 있으며, 외부에선 감춰진 타입만을 알 수 있다. 그래서 역제네릭으로 불리기도 한다.some + 프로토콜 (some Testable) 문법으로 사용컴파일 타임에 어떤 타입이 반환될지 결정함컴파일러는 구체 타입을 알기 때문에 타입 보존이 가능제네릭은 반대로 외부에서 구체 타입을 넣어주고, 내부에선 모른다protocol Testaa { func test(t: T)} class Tess { func test(t: "TT") { print(t) }}Protocol Type과 비교Protocol Type의 경우 반환되는 프로토콜 타입을 채택한다면 .. 2025. 2. 22. [Swift] VisionKit OCR VisionKit을 사용한 OCR 기술 구현이미지 분석 등의 과정을 처리할 핸들러 구현 let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])// Request 클로저 내부에서 해야할 동작 구현let request = VNRecognizeTextRequest { request, error in } VNImageRequestHandler내 사용되는 VNImageOption은 분석할 이미지의 추가적인 정보를 제공할 수 있음 VNImageOption.cameraIntrinsics:이미지가 촬영된 카메라의 내부 매개변수(camera intrinsic matrix)를 제공예를 들어, 얼굴이나 물체의 깊이, 크기 등을 분석할 때 카메라 렌즈의 초점.. 2024. 10. 7. [Swift] UITableView, UICollectionView Last IndexPath TableView 마지막 인덱스 private extension UITableView { func lastIndexPath() -> IndexPath { let section = max(numberOfSections - 1, 0) let row = max(numberOfRows(inSection: section) - 1, 0) return IndexPath(row: row, section: section) } } CollectionView 마지막 인덱스 private extension UICollectionView { func lastIndexPath() -> IndexPath { let section = max(numberOfSections - 1, 0) let row = max(numberOfItem.. 2023. 12. 5. [iOS] View Drawing Cycle (Layout까지 작성함) 혼자 그냥 멍때리는데 View를 그리며 문제 생겼던 부분들이 어떤 것이 있었을까 하고 고민하다가 그냥 심심해서 구글링하며 커스텀 뷰 이쁘장하게 되있는건 어째 구현했을랑가싶어서 구경 좀 했다. 근데 생각해보니 이쁘장한 커스텀뷰를 만들 때 뷰가 어떻게 그려지는 지에 대해 대충은 알고 있는데, 좀 깊이 살펴보며 포스팅한 것은 없는 것 같아서 공부할 겸 씀 우선 뷰가 어떻게 그려지고.. 어떻게 업데이트되며.. 레이아웃을 어떻게 잡는지에 대해서 이해하려면 Main RunLoop에 대해서 이해해야 한다고 한다. ㅇㅇ 그런가보다 하고 공부하믄되것지 뭐~~ Main RunLoop 별개로 우선 알아야 할 것은 내가 밑에서 설명할 RunLoop는 Main Thread에서 돌고있는 놈이다. 얘는 자동으로 돌고 있지만, 다른.. 2022. 8. 7. [Xcode] 단축키 좀 써주세요... 내가 죽어라고 쓰는 것만 좀 모아봤다. 코드 관련 ⌘ + 방향키 - 줄의 맨 끝단으로 이동 ⌘ + ⇧ + 방향키 - 커서 위치로부터 줄 끝까지 선택 ⌥ + 방향키 - 단어(띄어쓰기 기준) 단위로 이동 ⌃ + i - Indent 정렬 ⌘ + / - 주석 ⌘ + "-" - Zoom out ⌘ + "+" - Zoom in ⌘ + ⌃ + 0 - Zoom Reset ⌘ + 클릭 - 액션 메뉴 ⌥ + 클릭 - Quick Help ⌘ + ⌃ + 클릭 - Definition으로 이동 ⌘ + ⌃ + E - 이름 한꺼번에 바꾸기 ⌃ + ⇧ + 클릭 - 여러 줄 선택하여 동시에 수정 Navigator ⌘ + 0 - Navigator 보이기 / 숨기기 ⌘ + 1 ~ 9 - Navigator 메뉴 순서대로 (Navigator .. 2022. 8. 6. 이전 1 2 3 4 ··· 13 다음