比较字符串的问题

时间:2016-02-27 16:24:30

标签: ios swift sprite-kit

我有几天前正在运行的以下代码但是突然间,没有做任何更改,给了我所有这些错误。任何有关故障排除的帮助都将不胜感激。

init(name: String, arrayOfNodes: [SKSpriteNode]){

var SKnode = SKSpriteNode(imageNamed: "Cool Image")

SKnode.name = name     //Error: Cannot apply value of type String to type String

for(node in arrayOfNodes){   //4 errors about random things like putting in commas at various points
    //Stuff
}

if(name == "Billy"){   //Binary operator "==" cannot be applied to operands of type String and String
    //Stuff
}

这些错误似乎都不适合我,并且它们在没有对文件进行任何更改的情况下出现。我尝试重新启动Xcode,重新启动计算机,但都没有更改错误消息。

2 个答案:

答案 0 :(得分:1)

正如评论中所讨论的,你的for..in语句中有额外的括号,你没有声明你的变量SKnode(约定是在初始小写中命名,所以它不冲突使用SKNode),SKSpriteNode初始化的正确标签为imageNamed

一旦修复了这些错误,我就不会再遇到任何问题了。也许你的问题源于你的班级或代码中的其他问题?

我的更正代码:

import SpriteKit

class Foo {
  init(name: String, arrayOfNodes: [SKSpriteNode]){

    let skNode = SKSpriteNode(imageNamed: "Cool Image")

    skNode.name = name

    for node in arrayOfNodes {
      //Stuff
    }

    if(name == "Billy"){
      //Stuff
    }
  }
}

答案 1 :(得分:0)

问题的一部分是for循环中的括号。删除它们。 Apple建议类型以大写字母开头,这样您的SKnode可能是合法的变量名称,但却让其他人感到困惑。我不确定其他两个错误。

为什么SKSpriteNode中的参数标签不是这样的; SKSpriteNode(imageNamed: "Cool Image")