我在其中创建了一个结构和一个函数,我不明白为什么当我尝试调用它时它会向我询问错误的参数。这是我的函数声明:
struct UserInterfaceVariables {
func applyCustomAnimation(view: AnimatableView, animationType: String, duration: Double, delay: Double, damping: CGFloat, velocity: CGFloat, force: CGFloat) {
view.animationType = animationType
view.duration = duration
view.delay = delay
view.damping = damping
view.velocity = velocity
view.force = force
}
}
在另一个视图控制器中,我尝试调用它,它要求我输入一个" UserInterfaceVariables"参数,但这不是我要输入的参数类型...我想从我的函数声明中输入参数(" animationType"等等...)
UserInterfaceVariables.applyCustomAnimation(UserInterfaceVariables)
请注意" UserInterfaceVariables" entry(在括号中)是它所期望的参数类型...即这是它在Xcode上的样子:
为什么不问我函数定义中声明的参数?
编辑1 暂定解决方案:
let userInterfaceVariables = UserInterfaceVariables()
applyCustomAnimation(view: ..., .....)
答案 0 :(得分:3)
您正在从类型中调用实例方法。 Read more
创建指向iGongora的结构的实例,或将您的方法标记为static
static func applyCustomAnimation(view: AnimatableView, animationType: String, duration: Double, delay: Double, damping: CGFloat, velocity: CGFloat, force: CGFloat) {
view.animationType = animationType
view.duration = duration
view.delay = delay
view.damping = damping
view.velocity = velocity
view.force = force
}
现在,您可以使用当前代码正确调用该方法
干杯
答案 1 :(得分:2)
那是因为你需要在使用之前初始化结构并且参数告诉你。一旦初始化结构,参数就会改变。
尝试let userInterface = UserInterfaceVariables()
,然后userInterface.applyCustomAnimation(yourParameters)