gpt4 book ai didi

swift - UIInterpolatingMotionEffect 快速 XCode

转载 作者:行者123 更新时间:2023-11-28 11:23:53 38 4
gpt4 key购买 nike

我正在尝试用新语言 Swift 中的代码定义一个运动效果

var axis_x_motion: UIInterpolatingMotionEffect = UIInterpolatingMotionEffect( "center.x", UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis)

但 Xcode 返回错误:“使用未解析的标识符‘UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis’”

我也在尝试

var axis_x_motion: UIInterpolatingMotionEffect = UIInterpolatingMotionEffect( "center.x", TiltAlongHorizontalAxis)

但 Xcode 随后返回错误:“使用未解析的标识符‘TiltAlongHorizo​​ntalAxis’”

最佳答案

在开始解释之前,让我们先看一下修改后的代码

var axisXMotion = UIInterpolatingMotionEffect(keyPath: "center.x", type: .TiltAlongHorizontalAxis)

作为快速信息,Swift 语言的约定是使用 CamelCase 而不是 snake_case。

好的,这些变化意味着什么。 Swift 使用命名参数的概念,并要求您在大多数情况下使用这些参数名称。例如,如果我们看一下 UIInterpolatingMotionEffect 的初始化程序,我们可以看到它需要两个参数,

init(keyPath: String!, type: UIInterpolatingMotionEffectType)

这些参数被命名为 keyPathtype,因此我们需要在调用中指定它们。

至于无法识别的标识符,这归结为 Swift 如何识别枚举值。在 C 中,我们能够以这样的方式提供标识符的名称,我们可以说 UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis。但是在 Swift 中,我们需要提供枚举的名称和大小写,如下所示:

UIInterpolatingMotionEffectType.TiltAlongHorizo​​ntalAxis

但如您所见,我之前没有指定 UIInterpolatingMotionEffectType 部分。这是因为 Swift 使用了类型推断。编译器可以看到参数应为 UIInterpolatingMotionEffectType 类型,因此允许我们省略它并仅指定 .TiltAlongHorizo​​ntalAxis

您还可以在创建变量时使用此类型推断。编译器知道 UIInterpolatingMotionEffect 的初始化程序将返回类型为 UIInterpolatingMotionEffect 的对象,因此可以推断出所需的类型,从而允许您忽略它。

我希望这有助于解释其中的一些内容,如果您需要更多帮助或解释,请尽管提出!

关于swift - UIInterpolatingMotionEffect 快速 XCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076384/

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