[Swift] iCloud 파일 첨부 기능 만들기

반응형

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 예제가 있습니다

  1. public.image: 이미지 파일을 나타내는 UTI입니다. JPEG, PNG, GIF 등의 이미지 형식을 포함합니다.
  2. public.audio: 오디오 파일을 나타내는 UTI입니다. MP3, WAV, AAC 등의 오디오 형식을 포함합니다.
  3. public.movie: 비디오 파일을 나타내는 UTI입니다. MP4, MOV, AVI 등의 비디오 형식을 포함합니다.
  4. public.text: 일반 텍스트 파일을 나타내는 UTI입니다. 텍스트 파일 형식인 TXT, RTF, HTML 등을 포함합니다.
  5. public.pdf: Adobe Portable Document Format (PDF) 파일을 나타내는 UTI입니다.
  6. com.microsoft.word.doc: Microsoft Word 문서 파일을 나타내는 UTI입니다.
  7. com.apple.keynote.key: Apple Keynote 프레젠테이션 파일을 나타내는 UTI입니다.
  8. com.apple.pages.pages: Apple Pages 문서 파일을 나타내는 UTI입니다.
  9. public.zip-archive: 압축 파일을 나타내는 UTI입니다. ZIP, TAR, GZIP 등의 압축 형식을 포함합니다.
반응형

댓글

Designed by JB FACTORY