returns a fatal error : Index out of range when executing the function getBArrayList()
returns a fatal error : Index out of range when executing the function getBArrayList()
func getBArrayList(index: Int, array:[NSDictionary] ) -> [
NSDictionary]{
var barray:[NSDictionary] = []
for i in 0 ..< array.count
{
if array[i] == array[index]
{
break
}
barray[i] = array[i]
}
print(barray)
return barray
}
minuscurent = getBArrayList(index: arrayindex, array: minuscurent)
当 array[i ] 等于 array[index] 我想中断 for 循环的执行并继续下一个值
barray
被初始化为空数组,没有元素。在线:
barray[i] = array[i]
您正在尝试访问其第 i
个元素,但数组中没有任何元素。这就是崩溃的原因。
使用以下内容将这些元素添加到 barray
:
barray.append(array[i])
此外,我相信使用以下方法来测试相等性就足够了:
if i == index
而不是:
if array[i] == array[index]
更新
现在我不是 100% 确定您要实现的目标,但您似乎只是想从 minuscurent
.[=22= 中删除索引 arrayindex
之后的所有元素]
minuscurent = getBArrayList(index: arrayindex, array: minuscurent)
如果真是这样,你就不用自己实现了,直接用:
minuscurrent = minuscurrent.prefix(arrayindex)
如果目标是只删除一个元素,请再次使用标准实现:
minuscurrent.remove(at: arrayindex)
如果 NSDictionary 的对象没有被初始化,或者换句话说,如果你没有为数组提供内存,那么你不能将它直接分配给数组。
You should practise to use barray.append(array[i]) instead of directly assigning the object to array.
并且,您可以使用它来始终从 0 索引开始,而不是初始化空数组,而不是 0 将被空数据占用。
var barray = [NSDictionary]()
试试这个函数,我认为不需要循环你可以使用 ArraySlice https://developer.apple.com/documentation/swift/arrayslice
func getBArrayList(index: Int, array:[NSDictionary] ) -> [NSDictionary] {
var barray:[NSDictionary] = []
if index >= 0 && index < array.count {
barray.append(contentsOf: array[0..<index])
}
return barray
}
func getBArrayList(index: Int, array:[NSDictionary] ) -> [
NSDictionary]{
var barray:[NSDictionary] = []
for i in 0 ..< array.count
{
if array[i] == array[index]
{
break
}
barray[i] = array[i]
}
print(barray)
return barray
}
minuscurent = getBArrayList(index: arrayindex, array: minuscurent)
当 array[i ] 等于 array[index] 我想中断 for 循环的执行并继续下一个值
barray
被初始化为空数组,没有元素。在线:
barray[i] = array[i]
您正在尝试访问其第 i
个元素,但数组中没有任何元素。这就是崩溃的原因。
使用以下内容将这些元素添加到 barray
:
barray.append(array[i])
此外,我相信使用以下方法来测试相等性就足够了:
if i == index
而不是:
if array[i] == array[index]
更新
现在我不是 100% 确定您要实现的目标,但您似乎只是想从 minuscurent
.[=22= 中删除索引 arrayindex
之后的所有元素]
minuscurent = getBArrayList(index: arrayindex, array: minuscurent)
如果真是这样,你就不用自己实现了,直接用:
minuscurrent = minuscurrent.prefix(arrayindex)
如果目标是只删除一个元素,请再次使用标准实现:
minuscurrent.remove(at: arrayindex)
如果 NSDictionary 的对象没有被初始化,或者换句话说,如果你没有为数组提供内存,那么你不能将它直接分配给数组。
You should practise to use barray.append(array[i]) instead of directly assigning the object to array.
并且,您可以使用它来始终从 0 索引开始,而不是初始化空数组,而不是 0 将被空数据占用。
var barray = [NSDictionary]()
试试这个函数,我认为不需要循环你可以使用 ArraySlice https://developer.apple.com/documentation/swift/arrayslice
func getBArrayList(index: Int, array:[NSDictionary] ) -> [NSDictionary] {
var barray:[NSDictionary] = []
if index >= 0 && index < array.count {
barray.append(contentsOf: array[0..<index])
}
return barray
}