gpt4 book ai didi

swift - 使用变量在 swift 中将函数存储为 Obj-C 或 C++ 中的指针函数

转载 作者:行者123 更新时间:2023-11-28 11:57:09 25 4
gpt4 key购买 nike

我尝试创建一个类变量,以便稍后为其分配一个函数,以便稍后仅通过使用该变量来调用该函数。这个想法是能够在用户触摸不同的按钮时更改变量指向的函数,并且调用是在更新循环函数中进行的我想在变量中分配的所有函数都在代码上,因为它们包含动画代码但不同,而且我不想使用开关,调用函数更有效,就像在 Obj-C 或 C++ 中使用指针一样功能

类声明

private var animationFunction: (TimeInterval)

此行错误:“MenuScene”类没有初始化器

尝试分配函数:

/**** interface ****/
func addInterface()
{
// couleur de fond et taille de la vue de la pub
self.backgroundColor = Constants.UI.colorsArray[appDelegate.theme][Constants.UI.C_0101100_COLOR_BACKGROUND]

// animation
animationFunction = standardAnimation
}

在线作业我得到这个错误:无法将类型“(TimeInterval) -> ()”(又名“(Double) -> ()”)的值分配给类型“TimeInterval”(又名“Double”)

我想分配给类变量的函数

func standardAnimation(dtTime: TimeInterval)
{ do something }

问候,塞德里克

最佳答案

解决错误

Class 'MenuScene' has no initializers

您有两个选择:更改 animationFunction 的声明,使其成为 Optional 或为 MenuScene 创建一个指定的初始化程序,您可以在其中分配一个非可选的`animationFunction 的值。

要解决类型不兼容的第二个错误,您需要更改 animationFunction 的声明,因为目前它的类型是 TimeInterval 而不是函数类型。从错误消息看来,您似乎想要一个类型为 (TimeInterval)->() 的函数,即接受一个类型为 TimeInterval 的输入参数并返回 无效

要修复这两个错误,只需修改 animationFunction 的声明,使其成为 Optional 并具有所需的函数类型:

private var animationFunction: ((TimeInterval)->())?

关于swift - 使用变量在 swift 中将函数存储为 Obj-C 或 C++ 中的指针函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50763401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com