ios - 在编写重复代码时如何节省时间?

标签 ios xcode swift function loops

<分区>

我正在尝试在 Swift (V2.1.1) 中创建一个应用程序,我想知道是否可以缩短它:

    Pillar1.center = movePillarUp(Pillar1.center.x, floaty: Pillar1.center.y, pillarNumber: 1)
    Pillar2.center = movePillarUp(Pillar2.center.x, floaty: Pillar2.center.y, pillarNumber: 2)
    Pillar3.center = movePillarUp(Pillar3.center.x, floaty: Pillar3.center.y, pillarNumber: 3)
    Pillar4.center = movePillarUp(Pillar4.center.x, floaty: Pillar4.center.y, pillarNumber: 4)
    Pillar5.center = movePillarUp(Pillar5.center.x, floaty: Pillar5.center.y, pillarNumber: 5)
    Pillar6.center = movePillarUp(Pillar6.center.x, floaty: Pillar6.center.y, pillarNumber: 6)
    Pillar7.center = movePillarUp(Pillar7.center.x, floaty: Pillar7.center.y, pillarNumber: 7)
    Pillar8.center = movePillarUp(Pillar8.center.x, floaty: Pillar8.center.y, pillarNumber: 8)
    Pillar9.center = movePillarUp(Pillar9.center.x, floaty: Pillar9.center.y, pillarNumber: 9)
    Pillar10.center = movePillarUp(Pillar10.center.x, floaty: Pillar10.center.y, pillarNumber: 10)

进入某种函数或循环,这样我就不必手动复制、粘贴和输入所有数字。

最佳答案

当您看到您的代码包含这种xxx1xxx2xxx3 模式时,您就知道最好使用数组来存储 xxx

如果您是 Swift 的初学者,这就是您创建支柱数组的方式:

let pillarArray = [Pillar1, Pillar2, Pillar3, Pillar4, Pillar5, 
    Pillar6, Pillar7, Pillar8, Pillar9, Pillar10]

然后您只需遍历数组并在每个支柱上调用 movePillarUp:

for (index, pillar) in pillarArray.enumarate() {
    movePillarUp(pillar.center.x, floaty: pillar.center.y, pillarNumber: index + 1)
}

那更干净了!

实际上,您根本不需要创建 Pillar1Pillar10!为什么不在获得对象时就将其添加到数组中呢?

var pillarArray = []
pillarArray.append(someMethodThatReturnsAPillar())

关于ios - 在编写重复代码时如何节省时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883266/

相关文章:

ios - 如何在 Swift 4 中使用未知服务器数据类型在对象映射器中属性?

iphone - Xcode 4.6,用作前一个参数的名称而不是选择器的一部分

ios - Xcode 如何修复在设备上运行时出现的问题 "Unable to launch"?

macos - 非常快速地绘制图形(线)

swift - 当单词以 @ 开头时,通过键盘输入更改 TextView 中的单词格式

ios - if 语句后的预期声明

ios - 即使已发布 CIImageRefs,CIContext 内存泄漏

ios - 使用 iPad Pro 9.7"上的前置摄像头以 60 FPS 捕捉视频

iphone - 保持应用程序在后台运行 10 分钟,同时在后台不执行任何操作

ios - Azure Build Pipeline 没有使用 Xcode 注册的帐户。将您的开发者帐户添加到 Xcode