NSString
属性的对象场合来保存imagePath
。 现在,对于内置的应用程序映像,我确实将文件名作为
NSString
并保存在[occasion imagePath]
中。但是在第二种情况下,用户从照片库中选择图像,我得到一个NSURL
,我想将其转换为NSString
以便能够将其保存在[occasion imagePath
中。是否可以转换将
NSURL
转换为NSString
吗?#1 楼
在Objective-C中:NSString *myString = myURL.absoluteString;
在Swift中:
var myString = myURL.absoluteString
文档中的更多信息:
#2 楼
如果您对纯字符串感兴趣:[myUrl absoluteString];
如果您对URL表示的路径感兴趣(例如与
NSFileManager
方法一起使用) :[myUrl path];
#3 楼
在Swift中尝试:var urlString = myUrl.absoluteString
Objective-C:
NSString *urlString = [myURL absoluteString];
评论
我用NSString * urlString = [myURL absoluteString];但是我遇到了这个错误,xcode崩溃了。 -[__ NSCFString absoluteString]:无法识别的选择器已发送到实例0x791a18e0
–Võ Mai Trinh
15年6月22日在9:39
@VõMaiTrinh表示您的myURL是NSString类的对象。由于NSString没有absoluteString方法,因此会导致崩溃。
–铍
15年6月22日在9:45
#4 楼
快速更新:var myUrlStr : String = myUrl.absoluteString
评论
您可以省略String,因为Swift使用类型推断。
–萨拉瓦特·哈诺夫(Salavat Khanov)
2014年8月12日14:53
实际上,您应该省略String-《 Swift设计指南》试图尽量减少冗余代码。
–返回true
16年7月11日在11:04
#5 楼
我只是为此而战,这次更新没有用。这最终在Swift中完成了:
let myUrlStr : String = myUrl!.relativePath!
#6 楼
您可以使用任何一种方法NSString *string=[NSString stringWithFormat:@"%@",url1];
或
NSString *str=[url1 absoluteString];
NSLog(@"string :: %@",string);
字符串::文件: ///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAAA1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif
NSLog(@"str :: %@", str);
str ::文件:///var/containers/Bundle/Application/E2D7570B-D5A6-45A0-8EAA-A1F7476071FE/RemoDuplicateMedia.app/loading_circle_animation.gif
#7 楼
在Swift中:-var str_url = yourUrl.absoluteString
它将在字符串中产生一个url。
评论
答案重复了4年
– grg
20年11月6日,19:43
评论
嗨,谢谢您的回答。当我试图从保存的应变中加载图像时,我对您提到的将NSFileManager与[myUril path]一起使用的内容非常感兴趣。当我使用path而不是absoluteString时,它给我起了名字asset.jpg您能否详细说明如何使用它来将图像加载到UIImage实例中?
–阿里
2011年11月13日15:17
你好当然,要从文件名中获取真实的文件系统路径,您需要知道文件的存储位置,然后使用NSString的stringByAppendingPathComponent:组成文件来创建完整路径(目录+文件名)。知道图像存储在应用程序包中,在这种情况下,您可以使用[UIImage imageNamed:“ name”]调用来为您完成全部工作。但是在其他情况下,您必须指定完整路径。
–viggio24
2011年11月14日在9:18
嗨,谢谢您再次感谢。我仍然对如何使用此NSString asset-library://asset/asset.JPG?id = 1000000001&ext = JPG将图像加载到UIImage上感到困惑,在将[myUrl absoluteString]转换为NSString。我在这方面提出了这个问题,但没有得到答案。如果您能回答它,我将不胜感激[stackoverflow.com/questions/8085267 / ...
–阿里
2011年11月15日13:47
是的,当您想与NSFileManager一起使用它时,应该使用myUrl.path而不是myUrl.absoluteString,感谢Viggo24!
–flypig
2012年7月18日在15:09
由于您拥有资产库URL,而不是文件库URL,因此它与NSFileManager不兼容。对此类URL的访问由ALAssetsLibrary严格控制。
–迈克·阿卜杜拉(Mike Abdullah)
13年5月29日在8:38