2016-03-18 2 views
0

В настоящее время я создаю «расширение поставщика документов» для моего приложения iOS. Я использую расширение изнутри своего приложения, а также из других приложений, чтобы получить доступ к некоторым внутренним файлам приложения.UIDocumentPickerExtensionViewController validTypes всегда nil

При его использовании внутри, я создаю «UIDocumentPickerViewController», например, с помощью следующего кода:

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

Расширение работает нормально, но с одним исключением: «validTypes» массив всегда 'nil', поэтому я не могу ограничить доступ только к действительным файлам (в примере: файлы изображений).

Я также тестировал расширение с другими приложениями (например, Mail или 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"]) 

Просто попробуйте проверить для действительных типов позже: -)

 Смежные вопросы

  • Нет связанных вопросов^_^