Ios 我如何知道资产库中存在ALAsset的NSURL?

Ios 我如何知道资产库中存在ALAsset的NSURL?,ios,alasset,photolibrary,Ios,Alasset,Photolibrary,如果我在数据库中的照片库(ALAsset)中保留了一张照片图像的url好几天,我如何通过它的NSURL知道该照片仍然存在于照片库中 我尝试过这个方法,但不起作用: // Have already obtained the asset object from ALAssetsLibrary NSURL *assetURL = [[(ALAsset*)asset defaultRepresentation] url]; BOOL exists = [[NSFileManager defaultMan

如果我在数据库中的照片库(ALAsset)中保留了一张照片图像的url好几天,我如何通过它的NSURL知道该照片仍然存在于照片库中

我尝试过这个方法,但不起作用:

// Have already obtained the asset object from ALAssetsLibrary
NSURL *assetURL = [[(ALAsset*)asset defaultRepresentation] url];
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath: [assetURL absoluteString]];
NSLog(@"exists: %d (%@)", exists, [assetURL absoluteString]);

>> exists: 0 (assets-library://asset/asset.PNG?id=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&ext=PNG)

按你的要求试试这个。检查一下

dispatch_group_t group = dispatch_group_create();
    dispatch_group_enter(group);
    __block BOOL flag=YES;
    ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
    [assetslibrary assetForURL:path resultBlock:^(ALAsset *asset) {
        if (asset==nil)
        {
            flag=NO;
        }
        else
        {
            flag=YES;
        }
            dispatch_group_leave(group);
        } failureBlock:^(NSError *error){
                NSLog(@"operation was not successfull!");
                dispatch_group_leave(group);
    }];
    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
    dispatch_release(group);

NSURL*myURL=[NSURL URLWithString:@“url在这里”]NSString*path=[myURL absoluteString];我做了这个实现,但是它被卡在了行
dispatch\u group\u wait(group,dispatch\u TIME\u ever)上。当库的另一个对象正忙时,可能会调用此方法。我认为它可能需要另一个线程或调度队列来处理它。是吗?我找到了解决我问题的方法。很好的问题和努力。