小编use*_*703的帖子

AssetForURL返回nil

我正在尝试使用AssetForURL方法,但它返回零.

这是我正在使用的代码:

-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock
{
__block BOOL albumWasFound = NO;

//search all photo albums in the library
[self enumerateGroupsWithTypes:ALAssetsGroupAlbum 
                    usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

                        //compare the names of the albums
                        if ([albumName compare: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) {

                            //target album is found
                            albumWasFound = YES;

                            //get a hold of the photo's asset instance
                            [self assetForURL: assetURL
                                  resultBlock:^(ALAsset *asset) {
                                      //add photo to the target album
                                      [group addAsset: asset];
                                      //run the completion block
                                      completionBlock(nil);

                                  } failureBlock: completionBlock];

                            //album was found, bail out …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c

6
推荐指数
1
解决办法
966
查看次数

缺少UIImagePickerControllerReferenceURL

我正在尝试获取有关我选择的视频的一些数据UIImagePicker.

因此当它进入UIImagePicker委托方法(下面)时,我理解我需要使用UIImagePickerControllerReferenceURL信息字典中的密钥.

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    NSURL *url = [info objectForKey:UIImagePickerControllerReferenceURL];

    NSLog(@"%@",url);

    [library addAssetURL:[info objectForKey:UIImagePickerControllerReferenceURL] toAlbum:@"Compedia" withCompletionBlock:^(NSError *error) {
        if (error!=nil) {
            NSLog(@"Big error: %@", [error description]);
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

问题是网址是零.我打印了信息的描述,它看起来像这样:

Printing description of info:
{
    UIImagePickerControllerMediaType = "public.movie";
    UIImagePickerControllerMediaURL = "file://localhost/private/var/mobile/Applications/6630FBD3-1212-4ED0-BC3B-0C23AEEFB267/tmp/capture-T0x1f57e880.tmp.Ulfn5o/capturedvideo.MOV";
}
Run Code Online (Sandbox Code Playgroud)

在我完成一些研究后,我发现如果我设置相机,kUTTypeMovie它应该给我媒体和参考网址.

这就是我定义相机的方式:

cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeMovie, nil];
cameraUI.allowsEditing = YES;
cameraUI.delegate = delegate;
cameraUI.showsCameraControls = NO;
cameraUI.cameraOverlayView = …
Run Code Online (Sandbox Code Playgroud)

iphone xcode uiimagepickercontroller

6
推荐指数
1
解决办法
2826
查看次数