[英]Add Objects From One View Controller To An Array On Another View Controller
[英]add a range of objects from one array to another
当前,我们有2个数组:
fileprivate var totalDrinksArray: [CocktailModel] = []
fileprivate var currentDrinksArray: [CocktailModel] = []
我想做的是获取totalDrinksArray
的前两个对象,并将它们添加到currentDrinksArray
。 按下按钮后,接下来的2种饮料将从totalDrinksArray
添加到currentDrinksArray
(总共4种饮料),依此类推。
您可以将数组“添加”在一起:
currentDrinksArray += totalDrinksArray[0...1]
应该管用。
您的问题不太清楚,但是如果您要“添加下两个”(第3个和第4个):
currentDrinksArray += totalDrinksArray[2...3]
您可以使用Array方法func prefix(_ maxLength: Int)
,如果没有足够的元素,它将返回总数组的一部分(最多n个元素)或更少,并将其内容附加到当前数组中或将其插入所需的数组中指数:
currentDrinksArray.append(contentsOf: totalDrinksArray.prefix(2))
或者,如果您想将它们插入到数组的开头:
currentDrinksArray.insert(contentsOf: totalDrinksArray.prefix(2), at: 0)
IMO最简单的安全解决方案:
var currentIndex = 0
func addDrinks() {
if(currentIndex + 2 >= totalDrinksArray.count) {
currentDrinksArray += totalDrinksArray[currentIndex...]
}
else {
currentDrinksArray += totalDrinksArray[currentIndex..<(currentIndex + 2)]
}
currentIndex += 2
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.