我有几天前正在运行的以下代码但是突然间,没有做任何更改,给了我所有这些错误。任何有关故障排除的帮助都将不胜感激。
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,重新启动计算机,但都没有更改错误消息。
答案 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")
?