我有一个名为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个元素?
答案 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
循环!
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)