[Swift] iCloud 파일 첨부 기능 만들기
- 언어/스위프트
- 2023. 5. 26.
UIDocumentPickerViewController
▼ UIDocumentPickerViewController는 파일 선택 기능을 제공하는 뷰 컨트롤러로, 파일 선택 창을 표시하고 사용자가 파일을 선택하면 해당 파일에 대한 처리를 위임합니다. 선택한 파일은 delegate를 통해 알려주며, 이를 활용하여 원하는 작업을 수행할 수 있습니다. 다중 선택을 허용하거나 모달 프레젠테이션 스타일 등을 설정하여 사용자 경험을 조정할 수 있습니다.
▼ 다음 코드는 didPickDocumentsAt에서 선택된 파일의 URL을 가져와 출력합니다. 그런 다음, 선택된 파일이 PDF 파일인지 확인하고, PDF 파일인 경우 파일명을 디코딩합니다. 이후, Data(contentsOf:)를 사용하여 파일 데이터를 가져옵니다. 데이터를 가져오지 못한 경우 오류 메시지를 출력합니다.
▼ UIDocumentPickerViewControllerDelegate 프로토콜을 구현하여 파일 선택이 취소된 경우 호출되는 메서드인 documentPickerWasCancelled(_:)를 정의합니다. 이 메서드는 사용자가 파일 선택을 취소하거나 뷰 컨트롤러를 닫았을 때 실행됩니다.
▼ 다음 코드는 파일 형식을 확인하기 위해 매직 넘버(magic number)라고 불리는 바이너리 패턴을 사용합니다. 각 파일 형식은 특정한 바이너리 패턴으로 시작하며, 해당 패턴을 확인하여 파일 형식을 결정합니다. imageMagicNumbers 배열은 주요 이미지 형식인 JPEG, PNG, GIF 등의 매직 넘버를 포함합니다. 이 배열을 순회하면서 입력 데이터의 맨 앞부분과 비교하여 이미지 파일인 경우 .image를 반환합니다.
다음은 대표적인 Uniform Type Identifier (UTI)는 파일 형식을 식별하는 데 사용되는 공식적인 문자열입니다. UTI는 파일 확장자와 관계없이 파일 형식을 식별할 수 있어서 다양한 파일 형식을 지원하는 iOS 및 macOS 애플리케이션에서 사용됩니다. 여기에는 몇 가지 대표적인 UTI 예제가 있습니다
- public.image: 이미지 파일을 나타내는 UTI입니다. JPEG, PNG, GIF 등의 이미지 형식을 포함합니다.
- public.audio: 오디오 파일을 나타내는 UTI입니다. MP3, WAV, AAC 등의 오디오 형식을 포함합니다.
- public.movie: 비디오 파일을 나타내는 UTI입니다. MP4, MOV, AVI 등의 비디오 형식을 포함합니다.
- public.text: 일반 텍스트 파일을 나타내는 UTI입니다. 텍스트 파일 형식인 TXT, RTF, HTML 등을 포함합니다.
- public.pdf: Adobe Portable Document Format (PDF) 파일을 나타내는 UTI입니다.
- com.microsoft.word.doc: Microsoft Word 문서 파일을 나타내는 UTI입니다.
- com.apple.keynote.key: Apple Keynote 프레젠테이션 파일을 나타내는 UTI입니다.
- com.apple.pages.pages: Apple Pages 문서 파일을 나타내는 UTI입니다.
- public.zip-archive: 압축 파일을 나타내는 UTI입니다. ZIP, TAR, GZIP 등의 압축 형식을 포함합니다.
'언어 > 스위프트' 카테고리의 다른 글
[Swift] 스위프트 [String: Any?] 타입에서 Any? nil 값 다루기 (0) | 2023.11.14 |
---|---|
[UIKit] UIView 라운드 Shadow 그림자 박스 카드 만들기 (0) | 2023.07.15 |
[Swift] UIView 익스텐션 둥근 모서리 코너 (Rounded Corner) (0) | 2023.05.22 |
[Swift] WKWebView 화면 Pinch Zoom 확대 축소 기능 막기, 비 활성 제거하기 (0) | 2023.04.20 |
[Swift] iOS AudioSession 녹음과 동시에 다른 오디오 믹싱하는 옵션 (0) | 2023.03.22 |