문제

패키지 유형 문서가 있습니다. I.E.E.E.E. 폴더이지만 NSFileWrapper를 사용하고 com.apple.package를 사용하여 파일로 표시 할 파일로 나타납니다. 이메일로 공유하려는 파일로 나타납니다.나는 MFMailComposeViewController를 만들었고, addAttachmentData:mimeType:fileName:의 첫 번째 매개 변수에 무엇을 제공 해야하는지 운동하려고합니다.

패키지에는 이미지 파일과 플라이어가 포함되어 있지만 미래가 변경 될 수 있습니다.

패키지를 데이터로 변환하려면 어떻게합니까?그게 올바른 방법인가?

도움이 되었습니까?

해결책

당신이 말했듯이 패키지는 현실에 폴더에 있습니다.OSX 운영 체제에서만 패키지로 해석됩니다.

메일 프로토콜은 패키지 / 단일 파일로 해석 할 수 없으며 표준 폴더 만 볼 수 없습니다.

전자 메일을 통해이를 보내는 유일한 방법은 파일을 단일 파일로 압축하는 것입니다.패키지의 zip 아카이브 또는 예를 들어 tar.gz 파일을 만들어이 작업을 수행 할 수 있습니다.

코코아의 코드에서 Zip 아카이브를 만들 수있는 여러 솔루션이 있습니다.libz 라이브러리 및 C 코드를 직접 사용할 수 있거나 일부 타사 라이브러리를 사용하거나 jizarchive 또는 다른 사람.

다른 팁

내 파일은 크지 않으므로 ZIP가 overkill이며 제 3 자 코드를 사용하지 않으려 고합니다.그래서 여러 파일을 하나의 전자 메일 첨부 파일에 첨부하는 다른 접근 방식을 생각해 냈습니다.

첫째, 첨부 파일에서 원하는 모든 파일을 포함하는 NSFileWrapper 오브젝트가 이미 있습니다.키는 NSFileWrapper의 SerializedRepresentation 메서드를 사용하여 전자 메일 첨부 파일에 사용할 NSData 개체를 가져옵니다.mimetype에 대해 '응용 프로그램 / 옥텟 스트림'을 사용하고 있습니다.첨부 파일을 열기 위해 돌아 오면 NSFileWrapper의 InitWithSerializedRepresentation : 메소드를 사용하여 원래 NSFileWrapper를 다시 가져옵니다.

첨부 파일이 내 앱에서만 사용하고 열리게 되므로이 작업을 수행합니다.분명히 앱 이외의 첨부 파일로 뭔가를 수행 해야하는 경우에는 작동하지 않습니다.이 경우 지퍼가 논리적 인 선택 일 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top