Я разрабатываю 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 и не хочу рисковать сбоями на старых устройствах.
Большое спасибо за вашу помощь!
Я все еще использую свою старую логику. Спасибо за ссылку, я посмотрю. Если вы придумаете лучшее решение, сообщите мне. – Felix