Swift 2.0 - stringByAppendingPathComponent 错误转换 [重复]
Posted
技术标签:
【中文标题】Swift 2.0 - stringByAppendingPathComponent 错误转换 [重复]【英文标题】:Swift 2.0 - stringByAppendingPathComponent error conversion [duplicate] 【发布时间】:2015-10-16 17:36:43 【问题描述】:在从 swift 转换为 swift 2.0 后,我已将所有应用程序的 Xcode 更新为 7,但经过一番研究后,我能够手动修复它们。
但是,我无法解决“stringByAppendingPathComponent”的错误。 swift 2.0 好像去掉了这个方法。
所附图片显示了我正在平铺的错误。
知道如何解决这个问题吗?
func loadNotes()
let plistPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray
let DocumentsDirectory = plistPath[0] as! String
let path = DocumentsDirectory.stringByAppendingPathComponent("notes.plist")
let fileManager = NSFileManager.defaultManager()
if (!fileManager.fileExistsAtPath(path))
if let bundlePath = NSBundle.mainBundle().pathForResource("notes", ofType: "plist")
let resultDictionary = NSMutableDictionary(contentsOfFile: bundlePath)
println("Bundle notes.plist file is --> \(resultDictionary?.description)")
fileManager.copyItemAtPath(bundlePath, toPath: path, error: nil)
println("copy")
else
println("notes.plist not found")
else
println("note.plist already exists")
//fileManager.removeItemAtPath(path, error: nil)
let resultDictionary = NSMutableDictionary(contentsOfFile: path)
println("Loaded notes.plist file is --> \(resultDictionary?.description)")
var myDict = NSDictionary(contentsOfFile: path)
if let dict = myDict
//load values
else
println("worning ccould not create dictionary from notes.plist, default values will be used")
【问题讨论】:
这是很多 swift 1.2 代码 - 没有更多的 println 尝试使用转换为最新的 swift 语法选项 嗨 Jeef 是的,我附上了 1.2 - 我尝试使用转换为最新的 swift 语法选项,但错误没有改变 【参考方案1】:Apple 希望您使用 URL 而不是路径,因此他们使其在 Swift 2 中不可用。如果您不想使用 NSURL
,您可以暂时将其转换为 NSString
:
let path = (DocumentsDirectory as NSString).stringByAppendingPathComponent("notes.plist")
【讨论】:
永远不要将 String 转换为 NSString。查看 Apple 规定的内容。 github.com/apple/swift/blob/…以上是关于Swift 2.0 - stringByAppendingPathComponent 错误转换 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
应用程序中的调用函数didbecomeactive - Swift 2.0