2011-11-13 54 views
1

我想在照片庫中保存照片,但在此之前,我需要知道是否有足夠的可用空間來做到這一點。 我如何知道是否有足夠的空間將照片保存在照片庫中?iPhone照片庫免費空間

我的問題是,我需要從服務器下載圖像,但是如果在照片庫應用程序中有足夠的空間,則需要做出決定。

謝謝。

+0

完全重複http://stackoverflow.com/questions/1249014/iphone-available-disk-space和http://stackoverflow.com/questions/7618722/detect-no-disk-space-iphone-sdk和http://stackoverflow.com/questions/2606474/how-do-i-find-out-iphone-disk-space和http://stackoverflow.com/questions/5712527/ios-how-to-detect-total-可用的免費磁盤空間在iphone-ipad-設備 – Polynomial

+0

可能的重複:http://stackoverflow.com/questions/178915/how-to-save-picture-to-iphone-photo-library – aleroot

+0

我不同意,這不是任何提及的問題的重複。這些問題詢問設備上的一般磁盤空間,而問題是關於使用照片庫(而不是應用程序的文檔文件夾)的具體問題。更多請參閱我的答案。 –

回答

3

我做了一些檢查,並且似乎沒有Apple提供使用ALAssetLibrary時檢查磁盤空間的方法。但是,它們會提供錯誤代碼,但由於磁盤空間問題導致操作失敗。

我建議你只是嘗試保存圖像,並確保你檢查完成塊返回的錯誤,並相應地通知用戶。

ALAssetsLibraryWriteImageCompletionBlock有一個NSError參數,該參數可以是下列

錯誤代碼之一 AssetsLibrary相關的錯誤代碼

enum { 
    ALAssetsLibraryUnknownError =    -1, 

    ALAssetsLibraryWriteFailedError =   -3300, 
    ALAssetsLibraryWriteBusyError =    -3301, 
    ALAssetsLibraryWriteInvalidDataError =  -3302, 
    ALAssetsLibraryWriteIncompatibleDataError = -3303, 
    ALAssetsLibraryWriteDataEncodingError =  -3304, 
    ALAssetsLibraryWriteDiskSpaceError =  -3305, 

    ALAssetsLibraryDataUnavailableError =  -3310, 

    ALAssetsLibraryAccessUserDeniedError =  -3311, 
    ALAssetsLibraryAccessGloballyDeniedError = -3312, 
}; 

如果你之前需要一些額外的檢查,你可以使用中提到的方法這些註釋用於查找設備上的可用磁盤空間,但不保證AssetLibrary不使用不同邏輯來計算磁盤空間要求。

+0

不幸的是,我沒有找到任何方法來解決我的問題,一種可能的方法是嘗試保存圖像,並在此後檢查錯誤代碼,就像你寫的一樣! 謝謝,羅恩。 – Alexander

+0

沒問題。 iPhone SDK並不完美。在這一點上,雖然我認爲我的答案應該被接受爲答案:) –