首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString不会转换为NSURL (NSURL为空)

NSString不会转换为NSURL (NSURL为空)
EN

Stack Overflow用户
提问于 2012-03-21 06:33:03
回答 2查看 1.4K关注 0票数 4

我尝试将NSString ( documents目录中文件的路径)转换为NSURL,但NSURL始终为空。下面是我的代码:

代码语言:javascript
复制
NSURL *urlToPDF = [NSURL URLWithString:appDelegate.pdfString];
NSLog(@"AD: %@", appDelegate.pdfString);
NSLog(@"PDF: %@", urlToPDF);
pdf = CGPDFDocumentCreateWithURL((CFURLRef)urlToPDF);

下面是日志:

代码语言:javascript
复制
2012-03-20 18:31:49.074 The Record[1496:15503] AD: /Users/John/Library/Application Support/iPhone Simulator/5.1/Applications/E1F20602-0658-464D-8DDC-52A842CD8146/Documents/issues/3.1.12/March 1, 2012.pdf
2012-03-20 18:31:49.074 The Record[1496:15503] PDF: (null)

我认为部分问题可能是因为NSString包含斜杠/和破折号-。我做错了什么?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-21 06:38:36

为什么你不这样创建你的文件路径呢?

代码语言:javascript
复制
NSString *filePath = [[NSBundle mainBundle]pathForResource:@"pdfName" ofType:@"pdf"];

然后像这样用文件路径创建你的url。

代码语言:javascript
复制
NSURL *url = [NSURL fileURLWithPath:filePath];
票数 6
EN

Stack Overflow用户

发布于 2012-03-21 06:42:16

问题是,appDelegate.pdfString不是一个有效的网址,它是一个路径。file URL看起来像这样:

代码语言:javascript
复制
file://host/path

或者对于本地主机:

代码语言:javascript
复制
file:///path

所以你实际上想要:

代码语言:javascript
复制
NSURL *urlToPDF = [NSURL URLWithString:[NSString stringWithFormat:@"file:///%@", appDelegate.pdfString]];

...except您的路径包含空格,需要对其进行URL编码,因此您实际上希望:

代码语言:javascript
复制
NSURL *urlToPDF = [NSURL URLWithString:[NSString stringWithFormat:@"file:///%@", [appDelegate.pdfString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]];
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9796023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档