通过元组调用方法时,元组中方法的指针会导致错误

时间:2014-08-27 15:48:23

标签: swift

在我的课中,我有一个元组数组,里面有一个字符串,两个指针放在方法上。 我不知道为什么,但是当我想调用存储在我的元组中的方法时,我收到了以下错误消息:

  

在调用

中缺少参数#1的参数

我的课程:

class toto
{
    let funcs = [("a", a, aa), ("b", b, bb)]

    func a()
    {

    }

    func aa()
    {

    }

    func b()
    {

    }

    func bb()
    {

    }

    func test()
    {
        for (key, func1, func2) in funcs
        {
            func1() // The error displayed: Missing argument for parameter #1 in call
        }
    }
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您必须在函数调用中传递对self的引用:

func1(self)()

指向存储在数组中的类函数的指针不包含有关它所属类的实例的信息(或者更好的是执行函数的类实例)。为了使其工作,您必须提供上下文(即对类的实例的引用),在本例中为self

查看curried functions