Swift 2:使用对象数组作为参数调用函数

时间:2016-02-13 00:01:30

标签: arrays object types swift2 func

这是我的代码: 我已经有了一个名为“Rooms”的对象

class BuildRooms  {
func build(room: [Rooms]){
    room[0].setExits([-1,-1,-1,-1])
}

我试图通过输入以下来使用它:

var room: [Rooms] = []
BuildRooms.build(room)

BuildRooms.build(房间)发生错误 它说:无法将'Rooms'类型的值转换为'BuildRooms'的预期参数类型

感谢

1 个答案:

答案 0 :(得分:0)

您尝试将函数构建称为类/或静态/函数,但它被声明为实例函数。我同意,您收到的错误消息可能令人困惑,但这是正确的。

class Rooms {}
class BuildRooms  {
    class func build(room: [Rooms]){
        print("room: \(room)")
    }
}

var room: [Rooms] = []
BuildRooms.build(room) // room: []

你做了什么......可以这样做

class Rooms {}
class BuildRooms  {
    func build(room: [Rooms]){
        print("room: \(room)")
    }
}

var room: [Rooms] = []
let br = BuildRooms()
let bf = BuildRooms.build(br) // here the parameter expected is concrete instance of BuildRooms class and returning type is ...
print(bf.dynamicType) // Array<Rooms> -> ()
bf(room) // room: []