在我的类中,我有一个元组数组,其中包含一个字符串和两个方法指针。 我不知道为什么,但是当我想调用存储在元组中的方法时,我收到此错误消息:
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
。
关于swift - 通过元组调用方法时,元组中方法上的指针会导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531610/