Help us understand the problem. What is going on with this article?

iOS8.1ではフォトストリーム上のALAssetをassetForURLでは読み込めない

More than 5 years have passed since last update.

http://stackoverflow.com/questions/26480526/alassetslibrary-assetforurl-always-returning-nil-for-photos-in-my-photo-stream
ここに書いてある内容そのままなのですが、

iOS8.1以前では、

iCloudのフォトストリーム上の画像をALAssetLibraryのassetForURLで読み込むことができましたが、
iOS8.1は、その方法ではnilを返すようになってしまいました。

new_code
[assetLibrary assetForURL:url resultBlock:^(ALAsset *asset) {
    if (asset)
    {
        // フォトストリーム以外のALAssetを取得成功
    }
    else 
    {
        [assetLibrary enumerateGroupsWithTypes:ALAssetsGroupPhotoStream usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
            [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
                if ([result.defaultRepresentation.url isEqual:url])
                    // フォトストリームのALAsset取得成功
                    *stop = YES;
                }
            }];
        } failureBlock:^(NSError *error) {
            // フォトストリームのALAsset取得失敗
        }];
    }
} failureBlock:^(NSError *error) {
    // フォトストリーム以外のALAsset取得失敗
}];

これでたぶんOS依存はなくなったのです。

しかし、ネストが深くなってしまいました。

もっと一発で取得するベターな方法があれば情報共有お願いします。

soarcreator
プログラミング初心者です。
http://soarcreator.net/blog/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away