【问题标题】:Get NSString From NSURL从 NSURL 获取 NSString
【发布时间】:2012-02-02 13:05:54
【问题描述】:

我尝试使用这种方法从NSURL 获取NSString

NSString *tmp2 = [item.path absoluteString];

不幸的是,我得到的不是 NSURL:

<CFURL 0x173c50 [0x3f1359f8]>{type = 0, string = /var/mobile/Applications/A30FD2E4-A273-4522-AFD5-A981EFD3C2AA/Documents/*** *** - *** ***.***, encoding = 134217984, base = (null)} 

我明白了:

file://localhost/var/mobile/Applications/A30FD2E4-A273-4522-AFD5-A981EFD3C2AA/Documents/***%20***%20-%20***%20***.***

知道为什么吗?

【问题讨论】:

  • 如果您正在寻找通过在 gdb 中执行 po item(其中 item 是 NSURL)会得到什么,那么您应该调用 [item description]。不知道你为什么想要 NSUrl。您只是想构建一个持久层吗?
  • 你是说你想从一个 URL 中获取一个字符串,而这正是你得到的——你的问题是什么?
  • 问题是我得到的是“%20”而不是“”

标签: iphone objective-c


【解决方案1】:

NSURL documentation 明确指出absoluteString 返回一个 NSString,就像您上面的代码一样。这是绝对路径的字符串表示,所以你得到的就是你应该得到的。

但是,查看文档,您还可以使用 pathrelativePathrelativeString 以其他格式获取 url 的字符串表示形式(绝对或相对路径,无论是符合还是不符合 @987654325 @(现在已过时的 percent encoding)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    相关资源
    最近更新 更多