[英]Swift Insert Element At Specific Index
我正在做一个有在线音乐流的项目。
我有一个名为Song的对象数组 - 该数组Song中的每首歌都有一个来自SoundCloud的URL。
快速枚举每首歌曲,然后调用SoundCloud Resolve API以获取每首歌曲的直接流URL。 并将每个直接URL存储到一个数组中并加载到我的播放器。
这看起来很简单,但#2步骤是异步的,因此每个直接URL都可以存储到错误的数组索引中。 我正在考虑使用Insert AtIndex而不是append,所以我在Playground中制作了一个示例代码,因为我的所有想法都使得直接URL的存储保留了它的顺序,但是没有成功。
var myArray = [String?]()
func insertElementAtIndex(element: String?, index: Int) {
if myArray.count == 0 {
for _ in 0...index {
myArray.append("")
}
}
myArray.insert(element, atIndex: index)
}
insertElementAtIndex("HELLO", index: 2)
insertElementAtIndex("WORLD", index: 5)
我的想法是在这个游乐场代码中,它当然会产生错误,最后,我的问题是:使用这个插入atIndex的正确方法是什么?
使用Swift 3非常简单:
// Initialize the Array
var a = [1,2,3]
// Insert value '6' at index '2'
a.insert(6, atIndex:2)
print(a) //[1,2,6,3]
这一行:
if myArray.count == 0 {
第一次运行时只调用一次。 使用此方法将数组长度至少设置为您尝试添加的索引:
var myArray = [String?]()
func insertElementAtIndex(element: String?, index: Int) {
while myArray.count <= index {
myArray.append("")
}
myArray.insert(element, atIndex: index)
}
迅速4
func addObject(){
var arrayName:[String] = ["Name0", "Name1", "Name3"]
arrayName.insert("Name2", at: 2)
print("---> ",arrayName)
}
Output:
---> ["Name0","Name1", "Name2", "Name3"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.