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

标签 swift

在我的类中,我有一个元组数组,其中包含一个字符串和两个方法指针。 我不知道为什么,但是当我想调用存储在元组中的方法时,我收到此错误消息:

Missing argument for parameter #1 in call

我的类(class):

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
        }
    }
}

有什么建议吗?

最佳答案

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

func1(self)()

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

看看curried functions

关于swift - 通过元组调用方法时,元组中方法上的指针会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531610/

相关文章:

ios - 创建全局 NSOperationQueue

ios - 在协议(protocol)中插入 viewDidLoad()

swift - 访问另一个 View Controller 中的变量 - Xcode 8.0 Swift 3.0

swift - UIImage从对象c到swift并且图像大小不好

swift - 我如何在 Swift 中切换图像?

ios - 如何通过点击 tableview 单元格内的标签来呈现另一个 View Controller

ios - 迪尔德 : warning: What is this error?

swift - 自定义文本域

ios - 为什么我的 UILabel 没有截断?

swift - 无法推断复杂的闭包返回类型