我有一个名为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个元素?
发布于 2016-01-11 08:42:27
您可以使用范围下标获取数组的一个片段,然后追加:
// 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]发布于 2016-01-11 08:45:55
使用for循环!
别误会我的意思!我指的是C风格的循环,而不是for-in循环。当你想重复某件事很多次时,前者是有用的。
我们将首先循环通过things,但只对前10项!那我们就停下。
for var i = 0 ; i < 10 ; i++ {
elements.append(things[i])
}看见?很简单,不是吗?
我知道杰克·劳伦斯已经发布了另一个答案,但这是另一种方法。看看你喜不喜欢!
发布于 2016-01-11 09:02:09
您可以使用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)https://stackoverflow.com/questions/34717074
复制相似问题