ChatGPT解决这个技术问题 Extra ChatGPT

将 NSURL 转换为 NSString

我有一个应用程序,用户可以从内置应用程序图像或 iphone 照片库中选择图像。我使用具有 NSString 属性的对象 Occasion 来保存 imagePath

现在,对于内置应用程序图像,我确实将文件名作为 NSString 保存在 [occasion imagePath] 中。但是在第二种情况下,用户从照片库中选择图像,我得到一个 NSURL,我想将其转换为 NSString 以便能够将其保存在 [occasion imagePath]。

是否可以将 NSURL 转换为 NSString


Y
Yash Jadhav

在 Objective-C 中:

NSString *myString = myURL.absoluteString;

在斯威夫特:

var myString = myURL.absoluteString

docs 中的更多信息:


V
Venk

如果您对纯字符串感兴趣:

[myUrl absoluteString];

如果您对 URL 表示的路径感兴趣(例如与 NSFileManager 方法一起使用):

[myUrl path];

嗨,谢谢你的回答。当我试图从我保存的应变加载图像时,我真的很感兴趣你提到的关于使用 NSFileManager 和 [myUril path]; 当我使用 path 而不是 absoluteString 它给我的名字 asset.jpg 你能详细说明一下吗更多如何使用它将图像加载到 UIImage 实例中?
你好。当然,从文件名获取真正的文件系统路径,您需要知道文件的存储位置,然后通过使用 NSString 的 stringByAppendingPathComponent: 组合它们来创建完整路径(目录 + 文件名)。这条规则的唯一例外是当您知道图像存储在应用程序包中,在这种情况下,您只需使用 [UIImage imageNamed:"name"] 调用即可为您完成全部工作。但在其他情况下,您必须指定完整路径。
嗨,再次感谢您的回答。我仍然对如何使用此 NSString assets-library://asset/asset.JPG?id=1000000001&ext=JPG 将图像加载到 UIImage 感到困惑,我在将其转换为 NSString 后将 [myUrl absoluteString] 的结果转换为保存。在这里,我在这方面提出了这个问题,但没有得到答案。如果您能回答我将不胜感激 [stackoverflow.com/questions/8085267/…
是的,当您想将它与 NSFileManager 一起使用时,我们应该使用 myUrl.path 而不是 myUrl.absoluteString,谢谢 Viggo24!
由于您有一个 assets-library URL,而不是一个 file,它与 NSFileManager 不兼容。 ALAssetsLibrary 严格控制对此类 URL 的访问。
b
beryllium

在 Swift 中试试这个:

var urlString = myUrl.absoluteString

目标-C:

NSString *urlString = [myURL absoluteString];

我用 NSString *urlString = [myURL absoluteString];但是我遇到了这个错误,xcode 崩溃了。 -[__NSCFString absoluteString]:无法识别的选择器发送到实例 0x791a18e0
@VõMaiTrinh 这意味着您的 myURL 是 NSString 类的对象。由于 NSString 没有 absoluteString 方法,因此它会导致崩溃。
k
kmiklas

快速更新:

var myUrlStr : String = myUrl.absoluteString

您可以省略 String,因为 Swift 使用类型推断。
您实际上应该省略 String - Swift 设计指南试图实现尽可能少的冗余代码。
S
Speedz

我只是和这个东西打了一架,这个更新没有用。

这最终在 Swift 中实现了:

let myUrlStr : String = myUrl!.relativePath!

S
Shaik Thuphel

您可以使用任何一种方式

NSString *string=[NSString stringWithFormat:@"%@",url1];

或者

NSString *str=[url1 absoluteString];

NSLog(@"string :: %@",string);

字符串 :: file:///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAAA1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif

NSLog(@"str :: %@", str);

str :: file:///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAA-A1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif


k
kangna sharma

在 Swift 中:- var str_url = yourUrl.absoluteString

它将产生一个字符串中的 url。