2

-[PHPhotoLibrary performChanges:completionHandler]特にメソッドを使用して、新しい iOS 8 Photos フレームワークを使用して多くの写真を保存しています。

大量の画像セットで時間がかかったので、このアクションの進行状況をユーザーに通知する必要がありますが、ドキュメントにはそのようなものはありません.

誰もがその方法をすでに見つけていますか?

4

1 に答える 1

0

PHPhotoLibraryは、起動後にすべての変更をバックグラウンドで実行するように構築されているため、進行状況を追跡することはできません。プロトコルを使用PHPhotoLibraryChangeObserverして、変更が保存されたときに通知を受け取ります。具体的なアセットが気になる場合は、その永続的な識別子を確認してください。

NSString *expectedId = ...
PHFetchResult *fetchResult = ...

- (void)photoLibraryDidChange:(PHChange *)changeInstance {
    PHFetchResultChangeDetails *changeDetails = [changeInstance changeDetailsForFetchResult:fetchResult];

    for (PHAsset *asset in [changeDetails.insertedObjects arrayByAddingObjectsFromArray:changeDetails.changedObjects]) {
        if ([asset.localIdentifier isEqualToString:expectedId]) {
            // saving has ended
        }
    }
}
于 2015-03-05T14:09:11.013 に答える