2015-05-28 72 views
3

我正在開發iOS今日擴展,它可以從UIPasteboard讀取圖像並將其保存在磁盤上。由於iOS擴展程序無法使用大量內存,因此此過程會導致大圖像失敗。要解決這個問題,我首先檢查圖像的大小,並試圖決定,如果Widget可以保存或應該將這個任務交給它的主機應用程序:確定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模型上測試我的應用程序,也不希望在較舊的設備上冒險崩潰。

非常感謝您的幫助!

回答