Я пытаюсь выделить данные спрайта в глобальный массив, используя заданные индексы для спрайтов. Я инициализирую массив как массив SKSpriteNodes. Я посылаю SKSpriteNodes в этот массив, каждый спрайт имеет заданный индекс для этого массива. Я понимаю, что я мог бы также сделать это с помощью цикла вместо установки индексов, но сначала я хочу выяснить распределение массива.
Я попытался сделать ReserveCapacity (27), потому что будет 27 спрайтов для передачи, но при попытке получить индекс вне ошибки.
class GameScene: SKScene
{
//main array that will be used to store sprite button data
var mainArr: [SKSpriteNode] = [SKSpriteNode]()
..
override func didMove(to view: SKView)
{
mainArr.reserveCapacity(27)
...
if let name = touchedNode.name
{
if name == "pea"
{
peaFlag = peaFlag * -1
manageArrayData(name: pea, nameFlag: peaFlag, nameIndex: peaInd)/*may need to add images*/
}
...}//end touchNode
...} //end didMoveTo
func manageArrayData(name: SKSpriteNode, nameFlag: Int, nameIndex: Int)
{
if nameFlag >= 0
{
print(nameFlag)
print(nameIndex)
print("in array")
mainArr.insert(name, at: nameIndex)
//dump(mainArr)
print("-=-=-=-in-=-=-=-")
}
как я уже сказал, ошибка: фатальная ошибка: индекс массива находится вне диапазона
2019-06-27 09: 54: 09.414271-0700 Выбрать [36307: 1432579] Неустранимая ошибка: индекс массива находится вне диапазона
Я полагаю, что ошибка в том, что ReserveCapacity () имеет тип Int, в то время как я пытаюсь выделить память для SKSpriteNode ... поэтому нет места для того, что я выделяю, следовательно, "вне диапазона"
есть несколько «кнопок» (использующих SKSpriteNodes), поэтому я создал дерево if для кнопок, на которые они попадают.