Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用AssetPath创建NSURL_Ios_Objective C_Xcode_Instagram Api - Fatal编程技术网

Ios 使用AssetPath创建NSURL

Ios 使用AssetPath创建NSURL,ios,objective-c,xcode,instagram-api,Ios,Objective C,Xcode,Instagram Api,使用UIImagePickerController,我能够获得像资产这样的媒体的资产路径-library://asset/asset.MOV?id=2A2CE6C9-C178-4395-977B-E6F159BF6D5E&ext=MOV NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[

使用UIImagePickerController,我能够获得像
资产这样的媒体的资产路径-library://asset/asset.MOV?id=2A2CE6C9-C178-4395-977B-E6F159BF6D5E&ext=MOV

NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[referenceURL absoluteString], strInstagramCaption]];
现在,我想将此资源路径转换为NSURL,以将其传递到以下代码块:

if ([[UIApplication sharedApplication] canOpenURL:instagramURL])
{
    [[UIApplication sharedApplication] openURL:instagramURL];
}

这是您应该如何将资产路径转换为有效的
NSUrl
:-

NSURL *instagramURL = [NSURL URLWithString:[[NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@",[assetURL absoluteString],caption]stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
        [[UIApplication sharedApplication] openURL:instagramURL];
    }

参考

我猜您会使用UIImagePickerController从库中选择照片或打开相机?无论哪种方式,您都必须使用以下委托方法:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

}
在该方法中,您可以获取资产的URL,然后将其传递给资产URL的AVAsset framework,然后将其放入Instagram URL中

(NSURL *)[info valueForKey:UIImagePickerControllerReferenceURL];
使用上述代码在
imagePickerController
delegate方法中获取图像的URL。然后你可以把它传给阿瓦塞

更新 这也是一个有用的链接,它解释了如何使用
UIImagePickerController
-


希望这有帮助:)

.percentEscape
是自定义属性吗?是。。。它是。更新了答案。你能分享整个代码吗?分享一段视频到Instagram?不,这违反了SF的规定。您的目标是使用此处已回答的AssetPath创建NSURL。请自己尝试,如果仍然发现问题,请在此处共享您的代码或提出另一个问题,这肯定会对您有所帮助。我可以问您一个问题吗。当您这样做时,您是否发现Instagram应用程序有时会转到以前添加的图像/视频?也就是说,由于某种原因,它打开了第二个到最新的一个?不,上面的instagramURL打开了Instagram AppWell的Home选项卡。我一直在测试它,它打开了照片/视频上传程序。你能分享全部代码吗?我基本上使用了这篇文章中的代码: