2017-02-28 104 views
-5

我在想,如果有人能告诉我如何将其转换为SWIFT 3:转换为斯威夫特2〜3

for index = 0; index < jsonObjects.count; index += 1 { 
    ... 
} 

我是菜鸟/砍了那么一点点的解释将是很好。试图学习。谢谢。

+1

搜索'[迅速]Ç风格为循环',你会发现*许多*答案... –

+1

学习是_you_做的事情。 – matt

+0

我可以想出至少3种同样好的方法来做到这一点,你试过了吗? –

回答

0

你可以做最简单的方式(因为你jsonObject是一个集合):

for obj in jsonObjects { 
    print(obj) 
} 

或者你可以做的功能方式:

stride(from: 0, to: jsonObjects, by: 1).forEach({ obj in 
    print(jsonObjects[obj]) 
}) 
0

c样式for循环已从swift中删除,因为有更优雅的解决方案。

,你可以遍历一个范围:

for index in 0 ..< jsonObjects.count { 
    ... 
} 

0 ..< jsonObjects.count创建范围从0到jsonObjects.count-1。如果应包含最后一个索引,请使用...

此外,它看起来像jsonObjects是一个集合,所以你可以只使用

for object in jsonObjects { 
    ... 
} 

如果需要的索引,使用

for (index, object) in jsonObjects.enumerated() { 
    ... 
} 
0

尝试使用地图,或flatmap为自选

_= jsonObjects.map { object in 

    //manipulate your object 
    print(object) 
} 

还有如何使用它们以及许多在线指南等,这里是一个很好的一个:link

+0

不是,但我一直认为迅捷推动更多的地图和功能编程,而不是定期循环 – Abdoelrhman

+0

哦,哎呀,对不起 - 我的坏。我以为你在说'可选'的'map(_ :)'。但是使用'map(_ :)'来循环数组是没有意义的,因为你没有使用结果数组。相反,使用'forEach(_ :)'或一个常规的'for in'循环。 – Hamish