UIDocumentInteractionController для меню Відкрити - не працює

Я реалізував UIDocumentInteractionController для відправки файлів в інші програми. Файл є файлом .txt.

Ось код:

UIDocumentInteractionController *interactionController = [[UIDocumentInteractionController alloc] init];
[interactionController setURL:[NSURL fileURLWithPath:filePath]];
[interactionController setUTI:@"public.text"];
[interactionController setDelegate:self];
[interactionController presentOpenInMenuFromBarButtonItem:actionBarButtonItem animated:YES];

Меню відкривається відмінно, показуючи такі програми, як Pages, Dropbox тощо. Але коли я натискаю одну з них, меню "Відкрити в" відхиляє, і не виконується жодних дій (файл не надіслано, а цільова програма ніколи не відкривається.

Я спробував реалізувати методи делегування documentInteractionController: canPerformAction: і documentInteractionController: performAction: для запуску копіювання: і друкувати: виклики за допомогою меню опцій (на відміну від відкритого в меню) і що витягнуло меню з тільки перерахованими сторінками, але це ще не спрацювало.

Як це можна вирішити?

22

3 Відповіді

Я знайшов відповідь, і це управління пам'яттю. Я створюю UIDocumentInteractionController, а потім представляю його, але у мене немає його як змінної екземпляра. АРК звільняє її, перш ніж вона має можливість зробити що-небудь. Це включає в себе надсилання документа до зовнішньої програми.

Ця помилка не з'явилася на iPhone, але на iPad вона дає помилку, тому що архітектура popover працює трохи по-іншому, і це закінчується тим, що намагається намалювати її, коли вона звільняється. Ось що мене насторожило на помилку.

49
додано
thnx. провів пару годин. але забудьте про дугу. Thnx багато ще раз.
додано Автор Serg Shiyan, джерело
Це відповідь на проекти АРК. Ви повинні оголосити властивість для UIDocumentInteractionController: @property (неатомічний, сильний) UIDocumentInteractionController * docController;
додано Автор tony.tc.leung, джерело
Дякую! Я довго шукав по стеку і нарешті знайшов цю відповідь для мене.
додано Автор huoxinbird, джерело

Ця помилка також з'являється на iPhone/iPod. Просто встановіть:

@property (nonatomic, retain) UIDocumentInteractionController *docController;

і буде збережено, а документ буде передано до нової програми.

16
додано

досить додати наступний код:

[interactionController retain];
4
додано
IT KPI iOS
IT KPI iOS
74 учасників

Чат обсуждения IOS. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/602

ios_jobs_ua
ios_jobs_ua
27 учасників

Mobile Dev Jobs UA
Mobile Dev Jobs UA
20 учасників

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin, RN и т.д.