2011-11-05 82 views
5

我有一個應用程序,這是一個通用的文件管理器。我希望使用QLPreviewController,UIDocumentInteractionController等應用程序中的「Open in ...」功能能夠向我的應用程序發送任何文件類型。iOS文檔/文件類型關聯 - 通配符UTI?

我已經創建了一個文檔類型,但是「類型」是否設置爲「*」,「public。*」或類似的組合我無法讓應用程序顯示非特定情況下例如,如果我將UTI更改爲com.adobe.pdf)。

在Mac OS X上,可以將應用程序設置爲所有文件類型的通用查看器 - 這在iOS上不可行嗎?


編輯

通過文檔去,我發現只有極少數原始UTI類型,從所有其他繼承

public.item 
public.content 
public.database 
public.calendar-event 
public.message 
public.contact 
public.archive 
public.url-name 
public.executable 
com.apple.resolvable 

其中,有不少是明確從未將成爲文件的實例。

我可能一直過於雄心勃勃地試圖創建一個通配符測試:我嘗試過public.item,它使用郵件處理pdf文件。由於文檔聲明public.item是「物理層次結構的基本類型」,這可能意味着此通配符是,即「public.item = *」

最壞的情況下,我可以添加項目,內容,數據庫和檔案,並希望最好的。最好的情況下,項目涵蓋了一切。

回答

5

public.item適用於目前爲止我嘗試過的每種類型。

+1

'public.item'也可以匹配像蘋果事件創建者代碼奇怪的事情,因爲我發現,當我收到了隨機在OS X 10.6上推出的應用程序的報告。我通過使用public.data來解決問題。 (當然,Apple Events不適用於iOS ...) – Wevah

8

您需要指定功能以及物理層次結構的UTI。對於所有文件(但不包括捆綁包),您可以使用public.data + public.content。對於真正的一切(包括符號鏈接和文件夾),您可以使用public.item + public.content。

見Dropbox.app是怎麼做的:http://www.cocoanetics.com/2013/01/open-in-all-files/

見我對尿路感染的書面記錄在這裏:http://www.cocoanetics.com/2012/09/fun-with-uti/

+0

要排除bundles/directories/system-symbolic-files,是不是「public.data」夠了? –