AVISO GRANDE: certifique-se de cem por cento de certeza de que seu ramal ainda não está vinculado a algum tipo de mímica.
Usamos a extensão '.icz' para nossos arquivos personalizados para, basicamente, sempre, e o Safari nunca permite que você os abra dizendo "O Safari não pode abrir este arquivo". não importa o que fizemos ou tentamos com o material da UT acima.
Eventualmente, percebi que existem algumas funções UT * C que você pode usar para explorar várias coisas, e enquanto .icz fornece a resposta certa (nosso aplicativo):
No aplicativo foi carregado na parte superior, basta fazer isso ...
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension,
(CFStringRef)@"icz",
NULL);
CFURLRef ur =UTTypeCopyDeclaringBundleURL(UTI);
e interrompa essa linha e veja o que são UTI e ur - no nosso caso, era o nosso identificador como queríamos) e o URL do pacote (ur) apontava para a pasta do aplicativo.
Mas o tipo MIME que o Dropbox nos fornece de volta para o nosso link, que você pode verificar fazendo, por exemplo
$ 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
O tipo de conteúdo é o que queremos. O Dropbox afirma que essa é uma entrada de texto / calendário. Ótimo. Mas, no meu caso, JÁ TENTE COLOCAR texto / calendário nos tipos MIME do meu aplicativo e ele ainda não funciona. Em vez disso, quando tento obter a UTI e agrupar o URL para o tipo de mimet de texto / calendário,
NSString * UTI = (NSString *)UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType,
(CFStringRef)@"text/calendar",
NULL);
CFURLRef ur =UTTypeCopyDeclaringBundleURL(UTI);
Vejo "com.apple.ical.ics" como a UTI e "... / MobileCoreTypes.bundle /" como o URL do pacote. Não é nosso aplicativo, mas a Apple. Então, tento colocar com.apple.ical.ics nos LSItemContentTypes ao lado dos meus e em UTConformsTo na exportação, mas não é possível.
Então, basicamente, se a Apple achar que deseja, em algum momento, lidar com algum tipo de arquivo (que pode ser criado 10 anos após o aplicativo estar ativo, lembre-se), você precisará alterar a extensão, pois eles simplesmente não permitirão que você lide o tipo de arquivo.
-application:didFinishLaunchingWithOptions:
o delegado do aplicativo é chamado apenas se o aplicativo não tiver um segundo plano quando for aberto para manipular um arquivo.