PERINGATAN BESAR: Buat SATU SERATUS PERSEN yakin bahwa ekstensi Anda belum terikat ke beberapa jenis pantomim.
Kami menggunakan ekstensi '.icz' untuk file khusus kami untuk, pada dasarnya, dan Safari tidak akan pernah membiarkan Anda membukanya dengan mengatakan "Safari tidak dapat membuka file ini." tidak peduli apa yang kami lakukan atau coba dengan hal-hal UT di atas.
Akhirnya saya menyadari bahwa ada beberapa fungsi UT * C yang dapat Anda gunakan untuk menjelajahi berbagai hal, dan sementara .icz memberikan jawaban yang tepat (aplikasi kami):
Dalam aplikasi memuat di atas, lakukan saja ini ...
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)@"icz",
NULL);
CFURLRef ur =UTTypeCopyDeclaringBundleURL(UTI);
dan hancurkan garis itu dan lihat apa ISK dan Anda - dalam kasus kami, itu adalah pengidentifikasi kami seperti yang kami inginkan), dan url bundel (ur) bundel menunjuk ke folder aplikasi kami.
Tetapi tipe MIME yang diberikan Dropbox kepada kami untuk tautan kami, yang dapat Anda periksa dengan melakukan mis
$ curl -D headers THEURLGOESHERE > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 27393 100 27393 0 0 24983 0 0:00:01 0:00:01 --:--:-- 28926
$ cat headers
HTTP/1.1 200 OK
accept-ranges: bytes
cache-control: max-age=0
content-disposition: attachment; filename="123.icz"
Content-Type: text/calendar
Date: Fri, 24 May 2013 17:41:28 GMT
etag: 872926d
pragma: public
Server: nginx
x-dropbox-request-id: 13bd327248d90fde
X-RequestId: bf9adc56934eff0bfb68a01d526eba1f
x-server-response-time: 379
Content-Length: 27393
Connection: keep-alive
Jenis-Konten adalah apa yang kita inginkan. Dropbox mengklaim ini adalah entri teks / kalender. Bagus. Tetapi dalam kasus saya, saya sudah MENCOBA MENEMPATKAN teks / kalender ke dalam jenis pantomim aplikasi saya, dan itu masih tidak berfungsi. Sebaliknya, ketika saya mencoba untuk mendapatkan UTI dan bundel url untuk mimetype teks / kalender,
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType,
(CFStringRef)@"text/calendar",
NULL);
CFURLRef ur =UTTypeCopyDeclaringBundleURL(UTI);
Saya melihat "com.apple.ical.ics" sebagai UTI dan "... / MobileCoreTypes.bundle /" sebagai URL bundel. Bukan aplikasi kami, tapi Apple. Jadi saya mencoba memasukkan com.apple.ical.ics ke dalam LSItemContentTypes di samping milik saya, dan ke UTConformsTo dalam ekspor, tetapi jangan pergi.
Jadi pada dasarnya, jika Apple berpikir mereka ingin menangani suatu bentuk tipe file (yang dapat dibuat 10 tahun setelah aplikasi Anda aktif, ingatlah), Anda harus mengubah ekstensi karena mereka tidak akan membiarkan Anda menangani jenis file.
-application:didFinishLaunchingWithOptions:
dalam delegasi aplikasi hanya dipanggil jika aplikasi Anda tidak di-background ketika dibuka untuk menangani file.