2015-05-28 4 views
3

Я разрабатываю iOS сегодня расширение, которое может читать изображение из UIPboardboard и сохранять его на диске. Этот процесс выходит из строя с большими изображениями, поскольку расширения iOS не могут использовать много памяти. Чтобы обойти эту проблему, я проверяю размер изображения первым и попытаться решить, если виджет может сохранить его или должен делегировать эту задачу принимающего приложения:Определить ограничение памяти расширения iOS сегодня

let MAXIMUM_IMAGE_SIZE_BYTES = <SomeMagicNumber> 

if let clipboardImage = UIPasteboard.generalPasteboard().image { 
    let imageSize = CGImageGetHeight(clipboardImage.CGImage) * CGImageGetBytesPerRow(clipboardImage.CGImage) 
    if imageSize > MAXIMUM_IMAGE_SIZE_BYTES { 
     // Open host app to save image 
    } 
    else { 
     // Save image directly 
    } 
} 

У меня есть следующие вопросы:

  • Правильно ли вычисляется мой размер? Я взял его с this thread. Я не могу создать представление JPEG или PNG и прочитать его размер из-за ограничений памяти, упомянутых выше.
  • Могу ли я избавиться от этого магического номера для максимального размера изображения в байтах? Если нет, есть ли какие-либо официальные спецификации от Apple, которые я могу использовать? Я не могу проверить свое приложение на каждой доступной модели iOS и не хочу рисковать сбоями на старых устройствах.

Большое спасибо за вашу помощь!

ответ

1

Я только начинаю смотреть на память, которую использует расширение службы уведомлений. Я нашел эту презентацию. Может быть полезно для других.

https://cocoaheads.tv/memory-use-in-extensions-by-conrad-kramer/

Каково было ваше решение этой проблемы?

+0

Я все еще использую свою старую логику. Спасибо за ссылку, я посмотрю. Если вы придумаете лучшее решение, сообщите мне. – Felix

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

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