用什么代替Swift 2中的stringByAppendingPathComponent

jwa*_*502 2 swift swift2

我刚刚使用新的Swift 2安装了Xcode 7,现在我有50多个错误,说"stringByAppendingPathComponent"不可用,我应该使用"URLByAppendingPathComponent".我一直在设置所有的纹理属性,如下所示:

let dropTexture = SKTexture(image: UIImage(
    contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent(
        "P04_rainDrop1.png"))!)
Run Code Online (Sandbox Code Playgroud)

我一直这样做,所以当SKScene改变并且它一直运行良好时,他们不会留在记忆中.但是,直接替换"URLByAppendingPathComponent"并不能解决错误.

如何更改此设置以修复错误并获得相同的SKTexture?

mat*_*att 6

所有你需要做的就是强制转换为NSString来恢复stringByAppendingPathComponent,如下所示:

    let dropTexture = SKTexture(image: UIImage(
        contentsOfFile:(NSBundle.mainBundle().resourcePath! as NSString).stringByAppendingPathComponent(
            "P04_rainDrop1.png"))!)
Run Code Online (Sandbox Code Playgroud)

正如Leo Dabus正确地说的那样,你可以通过添加String的扩展来拯救自己.但是,你不应该像他建议的那样调用NSString(string:),这会生成一个额外的字符串.刚演员:

extension String {
    func stringByAppendingPathComponent(pathComponent: String) -> String {
        return (self as NSString).stringByAppendingPathComponent(pathComponent)
    }
}
Run Code Online (Sandbox Code Playgroud)