2016-03-18 163 views
0

當前我正在爲我的iOS應用程序創建一個「文檔提供程序擴展」。我正在使用應用程序內部的擴展以及其他應用程序的擴展來訪問某些應用程序內部文件。UIDocumentPickerExtensionViewController validTypes始終爲零

當在內部使用它,我創建一個「UIDocumentPickerViewController」例如用下面的代碼:

UIDocumentPickerViewController* documentPicker = 
    [[UIDocumentPickerViewController alloc] 
     initWithDocumentTypes:@[@"public.image"] 
         inMode:UIDocumentPickerModeImport]; 

擴展運行正常,但有一個例外: 在「validTypes」陣列總是'',所以我不能限制只有有效文件的訪問(在這個例子中:圖像文件)。

我也測試過其他應用程序(如郵件或Pixelmator)的擴展:相同的結果;運行良好,但validTypes始終爲零。當然,我不知道,Mail或Pixelmator如何初始化他們的文檔拾取器。

有沒有人看到我的錯誤?或者有人看到同樣的問題?並找到了解決方案?

非常感謝!

回答

1

也許你只是在初始化過程早期檢查'validTypes'數組;我這樣做了,前一段時間...

當通過UIDocumentPickerExtensionViewController步的初始化過程一步走,你會看到以下行爲:

- (void)viewDidLoad 

    self.validTypes not set (==nil) 

- (void)prepareForPresentationMode:(UIDocumentPickerMode)pMode 

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"]) 

- (void)viewWillLoad:(BOOL)animated 

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"]) 

- (void)viewDidLoad: 

    self.validTypes is set (!= nil; maybe: @[@"com.adobe.pdf"]) 

過會兒再檢查有效類型: - )