我的应用程序在Instagram上分享照片,为了做到这一点,它首先将其保存在一个临时目录中:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo")
它可以在Swift 1.2
上工作,但不能在Swift 2.0
上工作。
给定的错误消息为:
stringByAppendingPathComponent不可用:请改用NSURL上的URLByAppendingPathComponent。
发布于 2015-09-10 20:30:39
看起来stringByAppendingPathComponent
方法在Swift 2.0中被删除了,所以错误消息建议使用:
let writePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("instagram.igo")
更新:
URLByAppendingPathComponent()
已被appendingPathComponent()
取代,因此请执行以下操作:
let writePath = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("instagram.igo")
发布于 2015-09-10 20:24:52
它适用于NSString
,所以你可以这样使用它:
extension String {
func stringByAppendingPathComponent(path: String) -> String {
let nsSt = self as NSString
return nsSt.stringByAppendingPathComponent(path)
}
}
现在您可以使用此扩展,它将首先将您的String
转换为NSString
,然后执行操作。
你的代码将是:
let writePath = NSTemporaryDirectory().stringByAppendingPathComponent("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).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)
}
}
来自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)
}
}
发布于 2015-09-21 10:01:57
只需将字符串包装为NSString
即可。
let writePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("instagram.igo")
https://stackoverflow.com/questions/32501627
复制相似问题