仅向数组中插入10个元素

时间:2016-01-11 08:34:35

标签: ios arrays swift

我有一个名为Thing的结构:

struct Thing {
  var name: String
  var description: String
}

和一个包含100个元素的数组things = [Thing]()

现在我想要elements.addObjectsFromArray(things.subarrayWithRange(NSMakeRange(0, 10)))这样的内容填充我的tableView,但

  

[Thing]没有成员addObjectsFromArray。

我知道elements.insertContentsOf(things, at: 0),但它会插入things的所有元素。

如何在所需范围内仅插入10个元素?

3 个答案:

答案 0 :(得分:4)

您可以使用范围下标来获取数组的切片,然后追加:

// create the mutable array
var elements = [0]

// create the big array
let bigArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

// take a slice of bigArray from index 5 up to but 
// not including index 10 and append it to the mutable array
elements += bigArray[5..<10]

// elements is [0, 5, 6, 7, 8, 9]

答案 1 :(得分:0)

使用for循环!

不要误会我的意思!我的意思是C风格的for循环,而不是for-in循环。当你想要多次重复某些事情时,前者很有用。

我们将首先遍历things,但仅限前10项!然后我们停下来。

for var i = 0 ; i < 10 ; i++ {
    elements.append(things[i])
}

请参阅?这非常简单,不是吗?

我知道杰克劳伦斯已经发布了另一个答案,但这是一种替代方法。看看你喜欢与否!

答案 2 :(得分:0)

您可以使用CollectionType函数

struct Thing {
    var name: String
    var description: String
}

let things:[Thing] = Array(count: 20, repeatedValue: Thing(name: "TestName",     description: "TestDescription"))
var elements:[Thing] = []
//subArray from 0 to 9
let subThings = things.prefix(10)
elements.appendContentsOf(subThings)