用什么代替Swift 2

时间:2015-09-27 23:17:27

标签: swift swift2

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

let dropTexture = SKTexture(image: UIImage(
    contentsOfFile:NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent(
        "P04_rainDrop1.png"))!)

我一直这样做,所以当SKScene改变并且它已经完美运行时,它们不会留在记忆中。然而,直接替换" URLByAppendingPathComponent"不能解决错误。

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

1 个答案:

答案 0 :(得分:6)

您需要做的就是转换为NSString以恢复stringByAppendingPathComponent,如下所示:

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

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

extension String {
    func stringByAppendingPathComponent(pathComponent: String) -> String {
        return (self as NSString).stringByAppendingPathComponent(pathComponent)
    }
}