我有一个应用程序,用户可以从内置应用程序图像或 iphone 照片库中选择图像。我使用具有 NSString
属性的对象 Occasion 来保存 imagePath
。
现在,对于内置应用程序图像,我确实将文件名作为 NSString
保存在 [occasion imagePath]
中。但是在第二种情况下,用户从照片库中选择图像,我得到一个 NSURL
,我想将其转换为 NSString
以便能够将其保存在 [occasion imagePath
]。
是否可以将 NSURL
转换为 NSString
?
在 Objective-C 中:
NSString *myString = myURL.absoluteString;
在斯威夫特:
var myString = myURL.absoluteString
docs 中的更多信息:
如果您对纯字符串感兴趣:
[myUrl absoluteString];
如果您对 URL 表示的路径感兴趣(例如与 NSFileManager
方法一起使用):
[myUrl path];
在 Swift 中试试这个:
var urlString = myUrl.absoluteString
目标-C:
NSString *urlString = [myURL absoluteString];
myURL
是 NSString 类的对象。由于 NSString 没有 absoluteString
方法,因此它会导致崩溃。
快速更新:
var myUrlStr : String = myUrl.absoluteString
String
,因为 Swift 使用类型推断。
String
- Swift 设计指南试图实现尽可能少的冗余代码。
我只是和这个东西打了一架,这个更新没有用。
这最终在 Swift 中实现了:
let myUrlStr : String = myUrl!.relativePath!
您可以使用任何一种方式
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
[myUril path];
当我使用 path 而不是 absoluteString 它给我的名字asset.jpg
你能详细说明一下吗更多如何使用它将图像加载到 UIImage 实例中?assets-library://asset/asset.JPG?id=1000000001&ext=JPG
将图像加载到 UIImage 感到困惑,我在将其转换为 NSString 后将[myUrl absoluteString]
的结果转换为保存。在这里,我在这方面提出了这个问题,但没有得到答案。如果您能回答我将不胜感激 [stackoverflow.com/questions/8085267/…assets-library
URL,而不是一个file
,它与NSFileManager
不兼容。ALAssetsLibrary
严格控制对此类 URL 的访问。