无法将 NSString 转换为 NSURL
Posted
技术标签:
【中文标题】无法将 NSString 转换为 NSURL【英文标题】:Unable to convert NSString to NSURL 【发布时间】:2015-06-01 05:34:45 【问题描述】:我正在使用以下代码从 NSString 获取 NSURL,但我总是将 NSURL 设为 null:
NSString *CFURL = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)[assetURL absoluteString], NULL, CFSTR("!$&'()*+,-./:;=?@_~"), kCFStringEncodingUTF8));
NSString *instagramString = [NSString stringWithFormat:@"instagram://library?AssetPath=%@&InstagramCaption=%@", (NSURL *)CFURL, strInstagramCaption];
NSURL *instagramURL = [NSURL URLWithString:instagramString];
【问题讨论】:
该问题缺乏足够的信息来回答,特别是缺少:assetURL
和 strInstagramCaption
。也不要使用 CFURLCreateStringByAddingPercentEscapes
参见:SO Answer 使用 stringByAddingPercentEncodingWithAllowedCharacters:
。
@zaph 错了!已经在这里回答了:- ***.com/questions/30566795/…
很好地链接了正确的解决方案和对另一个答案的引用。想知道评论的哪一部分是错误的?
关于将视频分享到 Instagram 的精彩完整博文:horison blog
【参考方案1】:
NSURL
本身不支持 instagram 协议。 Here are the supported protocols.
URL 加载系统支持使用以下方式访问资源 以下协议:
文件传输协议 (ftp://)
超文本传输协议 (http://)
带加密的超文本传输协议 (https://)
本地文件 URL (file:///) 数据 URL (data://)
如文档中所述,您必须创建一个custom protocol。
【讨论】:
你能帮我把instagramString
转换成instagramURL
吗?
虽然这对于 URL 加载系统是正确的,但对于仅创建一个 URL 是不正确的,这将创建一个 URL:NSURL *instagramURL = [NSURL URLWithString:@"instagram://library?AssetPath=qqq"];
以上是关于无法将 NSString 转换为 NSURL的主要内容,如果未能解决你的问题,请参考以下文章
React Native - nsnumber类型的json值'0'无法转换为nsstring
将 JSON 格式的 NSString 转换为 NSArray 失败
如何以编程方式将 NSData 转换为 NSString? [复制]
无法将“__NSCFBoolean”(0x100b123b8)类型的值转换为“NSString”(0x100f0ab48)