當PhotoLibrary更改時,所有AssetLibrary對象變爲無效。 需要做什麼:
1)在用戶切換出應用程序之前,註冊ALAssetsLibraryChangedNotification的觀察者。請注意,有一個iOS的錯誤,你需要解決:http://www.openradar.me/10484334
2)用戶切換出的應用程序的保存要在以後檢索使用方法的ALAssets的網址前:
[assetObject valueForPropery: ALAssetPropertyURLs];
3)當用戶切換回你的應用程序(和更改完成)時,應該調用觀察者。如果您的UI顯示任何ALAsset對象,則應該觸發AssetsLibrary的重新枚舉並更新您的GUI(否則您的GUI會反映爲無效的ALAssetsObjects)。
4)檢索任何您的ALAsset對象的,你保存的網址之前,使用方法:
[assetsLibraryInstance assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock]
對於assetURL傳給你先前保存的值。
乾杯,
亨德里克
謝謝!這確實有效。然而,澄清:如果應用程序在後臺,應用程序是否仍會收到ALAssetsLibraryChangedNotification? – kurisukun 2012-04-20 01:50:42
當應用程序在後臺時,它不會收到通知。但是,如果在照片庫發生任何更改時,應用程序位於後臺,則只要應用程序再次處於前臺,您就會收到通知(一次或多次)。 – holtmann 2012-04-20 19:31:04