2012-03-16 4 views
0

Я просматриваю документы в своем приложении с помощью UIDocumentInteractionController. Тем не менее, иногда документы отображаются хорошо, в других случаях диспетчер взаимодействия отображает сообщение «Ошибка при чтении документа». Я знаю, что это не проблема с документом, потому что тот же документ иногда показывает, а иногда нет.UIDocumentInteractionController - Ошибка при чтении документа

Перезапуск устройства решает эту проблему временно - так что это будет проблема памяти, но, как ни странно, я не получаю никаких предупреждений о памяти. Любые идеи о том, как заставить это работать надежно, пожалуйста?

Примечание:

  1. documentinteractioncontroller просмотр уволен и контроллера освобожден после завершения обеспечить предыдущие предварительные просмотры не остаются в памяти
  2. Я была такая же проблема с помощью контроллера Quicklook

ответ

1

После долгих испытаний, похоже, эта проблема ограничена iPad 1. Единственным обходным решением является перезапуск.

0

Поскольку вы считаете, что данный документ верен, и вы считаете, что ваш код верен, вы должны начать искать другие факторы. Два, которые приходят на ум:

  • Состояние заявки. Есть ли что-то о текущем состоянии приложения, которое может помешать работе предварительного просмотра? Вы упомянули, что вы не получаете никаких предупреждений о памяти, но посмотрели, сколько памяти использует приложение, когда предварительный просмотр преуспевает и когда он терпит неудачу?

  • Состояние документа. Возможно ли, что файл по какой-либо причине не открывается, например, файл уже открыт? Можете ли вы открыть файл любым другим способом?

+0

Я не изучил, сколько памяти использует приложение, когда оно терпит неудачу, потому что я предполагаю, что при использовании слишком большого объема памяти я получу предупреждение о памяти. Даже если использование памяти велико, я ничего не могу сделать, чтобы улучшить его, приложение отклоняет все представления, за исключением rootvc, перед представлением предварительного просмотра взаимодействия. (Я уже проверил на наличие утечек). Что касается второго предложения, я не думаю, что он имеет какое-либо отношение к состоянию документа - причина в том, что документы просматриваются, когда «Open in MyApp» выбрано в другом приложении, которое заставило бы iOS записать его в файл песочницы – RunLoop

0

Возможно, ваше приложение пытается отобразить документ до того, как os завершит запись его в папку песочницы. Скорость этой операции будет несколько зависеть от того, что еще происходит на фоне (другие приложения, загрузка электронной почты, проверка iOS для обновлений и т. Д.). Это также объясняет, почему перезапуск устройства может временно устранить проблему.

Чтобы проверить это, вы можете проверить эту ошибку, а затем повторить попытку открытия документа через несколько секунд.

Без специального кода или журналов трудно сказать гораздо больше.