【问题标题】:How can I loop through objects in Swift? [closed]如何在 Swift 中遍历对象? [关闭]
【发布时间】:2016-05-06 23:28:19
【问题描述】:

我有以下对象:

(费率)

{
  EUR: "1"
  RON: 4.5
  USD: 1.3
  .
  .
  .
  n: INT/STRING
}

有没有这样的功能?

【问题讨论】:

  • 有循环和高阶函数可供选择。选择什么取决于你想要完成什么。你读过the guide吗?
  • 我做到了。仍然没有找到解决方案。所以我该怎么做?还有其他方法吗?

标签: ios swift loops object swift2


【解决方案1】:

如果您关心索引,则可以使用“传统”for 循环 - 尽管 @Eric 指出这将很快被完全删除

for var i = 0; i < rates.count; i++
{
   let rate = rates[i]
   // do stuff with rate
}

枚举方法如下所示

for (index, rate) in rates.enumerate() 
{
    print("Do stuff with \(rate) at position \(index)")
}

如果您只需要依次需要每个对象,那就更容易了

for rate in rates
{
    // do stuff with rate
}

【讨论】:

  • for var ... i++ 循环(C 风格的循环)在 Swift 2.2 中已弃用,将从 Swift 3 中删除。对于使用索引进行循环,请在序列上使用 .enumerate()。
  • 持续更新 Swift 的乐趣 :-) 编辑答案以包含此
  • 大家感谢您的帮助!现在我收到一个错误:“'AnyObject' 类型的值没有成员 'enumerate'”
  • 另一件事......要使用费率中的对象,我必须使用 rates.objectForKey("EUR") 。也许这有帮助
  • @CodeContrive - 如果您要根据键选择值,则无需遍历数组。
【解决方案2】:

因为是字典,所以不需要 enumerate():

var aDictionary: [String: Float] = ["EUR": 1, "RON": 4.5,
    "USD": 1.3]

for (index,item) in aDictionary{
    print(index,item)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 2015-10-17
    • 2021-03-23
    • 2021-12-15
    • 2017-05-06
    • 2016-02-09
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多