May*_*sam 127 ios swift swift2
我的应用程序在Instagram上分享照片,为此,首先将其保存在临时目录中:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo")
Run Code Online (Sandbox Code Playgroud)
它正在努力Swift 1.2,但不起作用Swift 2.0.
给出错误消息是:
stringByAppendingPathComponent不可用:改为使用NSURL上的URLByAppendingPathComponent.
Dán*_*agy 139
看起来stringByAppendingPathComponent在Swift 2.0中删除了该方法,因此错误消息建议使用:
let writePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("instagram.igo")
Run Code Online (Sandbox Code Playgroud)
更新:
URLByAppendingPathComponent()已取而代之的appendingPathComponent()是:
let writePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("instagram.igo")
Run Code Online (Sandbox Code Playgroud)
Dha*_*esh 73
它正在工作,NSString你可以像这样使用它:
extension String {
func stringByAppendingPathComponent(path: String) -> String {
let nsSt = self as NSString
return nsSt.stringByAppendingPathComponent(path)
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以使用此扩展程序将您转换String为NSString第一个然后执行操作.
你的代码将是:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo")
Run Code Online (Sandbox Code Playgroud)
这是另一种使用方法:
extension String {
var lastPathComponent: String {
return (self as NSString).lastPathComponent
}
var pathExtension: String {
return (self as NSString).pathExtension
}
var stringByDeletingLastPathComponent: String {
return (self as NSString).stringByDeletingLastPathComponent
}
var stringByDeletingPathExtension: String {
return (self as NSString).stringByDeletingPathExtension
}
var pathComponents: [String] {
return (self as NSString).pathComponents
}
func stringByAppendingPathComponent(path: String) -> String {
let nsSt = self as NSString
return nsSt.stringByAppendingPathComponent(path)
}
func stringByAppendingPathExtension(ext: String) -> String? {
let nsSt = self as NSString
return nsSt.stringByAppendingPathExtension(ext)
}
}
Run Code Online (Sandbox Code Playgroud)
来自HERE的参考资料.
对于swift 3.0:
extension String {
func stringByAppendingPathComponent1(path: String) -> String {
let nsSt = self as NSString
return nsSt.appendingPathComponent(path)
}
}
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent(path: "instagram.igo")
extension String {
var lastPathComponent: String {
return (self as NSString).lastPathComponent
}
var pathExtension: String {
return (self as NSString).pathExtension
}
var stringByDeletingLastPathComponent: String {
return (self as NSString).deletingLastPathComponent
}
var stringByDeletingPathExtension: String {
return (self as NSString).deletingPathExtension
}
var pathComponents: [String] {
return (self as NSString).pathComponents
}
func stringByAppendingPathComponent(path: String) -> String {
let nsSt = self as NSString
return nsSt.appendingPathComponent(path)
}
func stringByAppendingPathExtension(ext: String) -> String? {
let nsSt = self as NSString
return nsSt.appendingPathExtension(ext)
}
}
Run Code Online (Sandbox Code Playgroud)
Jef*_*Neo 30
只需将您的字符串包装为NSString.
let writePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("instagram.igo")
Run Code Online (Sandbox Code Playgroud)
Vya*_*lav 14
对于Swift 3:
let writePath = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(directoryname).path
Run Code Online (Sandbox Code Playgroud)
或者更好地创建此扩展:
extension String {
func appendingPathComponent(_ string: String) -> String {
return URL(fileURLWithPath: self).appendingPathComponent(string).path
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
let writePath = NSTemporaryDirectory().appendingPathComponent(directoryname)
Run Code Online (Sandbox Code Playgroud)
Swift 3解决方案:
这是一个获取文档目录路径的函数 -
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in:.userDomainMask)
let documentsDirectory = paths[0]
return documentsDirectory
}
Run Code Online (Sandbox Code Playgroud)
如何使用:
getDocumentsDirectory.appendingPathComponent("google.com")
Run Code Online (Sandbox Code Playgroud)
结果:
file:///var/folders/w1/3rcp2fvs1qv43hfsh5876s0h0000gn/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-7CF9F706-509C-4D4C-997E-AB8FE9E4A6EA/Documents/google.com
Run Code Online (Sandbox Code Playgroud)
对于swift 2.0
// Get the documents Directory
func documentsDirectory() -> String {
let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
return documentsFolderPath
}
// Get path for a file in the directory
func fileInDocumentsDirectory(filename: String) -> String {
let writePath = (documentsDirectory() as NSString).stringByAppendingPathComponent("Mobile")
if (!NSFileManager.defaultManager().fileExistsAtPath(writePath)) {
do {
try NSFileManager.defaultManager().createDirectoryAtPath(writePath, withIntermediateDirectories: false, attributes: nil) }
catch let error as NSError {
print(error.localizedDescription);
}
}
return (writePath as NSString).stringByAppendingPathComponent(filename)
}
//# MARK: - Save Image in Doc dir
func saveImage (image: UIImage, path: String ) -> Bool{
let pngImageData = UIImagePNGRepresentation(image)
// let jpgImageData = UIImageJPEGRepresentation(image, 1.0) // if you want to save as JPEG
let result = pngImageData!.writeToFile(path, atomically: true)
print("\(result)")
print("\(path)")
return result
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63826 次 |
| 最近记录: |