当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