更新到 Swift 2.0 后出错 [重复]

Posted

技术标签:

【中文标题】更新到 Swift 2.0 后出错 [重复]【英文标题】:Error after updating to Swift 2.0 [duplicate] 【发布时间】:2015-10-19 17:09:06 【问题描述】:

我最近更新了 XCode。从那时起我就犯了错误。

这是我的代码

       public func asUIImage() -> UIImage? 
        if let path = value as? String
            let docsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] 
            let imageDirPath = docsPath.stringByAppendingPathComponent("SwiftDataImages")
            let fullPath = stringByAppendingPathComponent(path)
            if !NSFileManager.defaultManager().fileExistsAtPath(fullPath) 
                print("SwiftData Error -> Invalid image ID provided")
                return nil
            
            let imageAsData = NSData(contentsOfFile: fullPath)
            if let imageAsData = imageAsData 
                return UIImage(data: imageAsData)
            
        
        return nil
    

错误:

对于名为let imageDirPath的变量:

stringByAppendingPathComponent' 不可用 NSURL 上的 URLByAppendingPathComponent 代替

对于变量let fullPath

使用未解析的标识符 stringByAppendingPathComponent

【问题讨论】:

【参考方案1】:

stringByAppendingPathComponent(str:) 在 Swift 2.0 中从 String 中删除。它仍然适用于NSString,因此您可以像这样使用它:

let docsPath: NSString = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
let imageDirPath: NSString = docsPath.stringByAppendingPathComponent("SwiftDataImages")
let fullPath = imageDirPath.stringByAppendingPathComponent(path)

docsPathimageDirPath 声明为NSString

【讨论】:

以上是关于更新到 Swift 2.0 后出错 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQLalchemy 更新到 1.4.0 后出错 [重复]

更新到 Xcode 9 / Swift 4 后 AVCapture 出现奇怪的编译错误 [重复]

将 Objective-C 代码迁移到 Swift(Swift 2.0更新)-b

迁移 Swift 和更新 Alamofire 后,我的路由器无法工作

初识vue 2.0(12):使用$nextTick获取更新后的DOM

Swift互用性:与 Objective-C 的 API 交互(Swift 2.0版更新)-备