EXC_BAD_ACCESS для массивов в функции XCode - PullRequest
0 голосов
/ 04 мая 2020

У меня есть эта функция

func pickAttraction(attractionType: Array<Attraction>) -> Attraction {
      let randAttr = attractionType[5]
      if favoritesNames.contains(randAttr.attractionName) {
        return pickAttraction(attractionType: attractionType)
      } else {
        return randAttr
      }
    }

, и моя программа падает (иногда) в строке, начинающейся с "if FavoritesNames". В последний раз, когда произошел сбой, массив FavoritesNames содержал 1 строку, а randAttr.attractionName - другую строку. Я ожидал, что он вернет randAttr, но вместо этого произошел сбой. Кто-нибудь знает, почему?

Я также пытался

if favoritesNames.contains(randAttr.attractionName) || favoritesNames[0] == randAttr.attractionName {

, и я получил ту же ошибку

Я также пытался

func pickAttraction(from attractions: [Attraction]) -> Attraction? {
attractions.filter { !favoritesNames.contains($0.attractionName) }
    .randomElement()

}

вместо другой функции, и я все еще получаю ту же ошибку

Спасибо

1 Ответ

0 голосов
/ 04 мая 2020

Я полагаю, let randAttr = attractionType[5] обращается к индексу, который не существует. Можете ли вы проверить, что есть доступные данные, если вы обращаетесь к массиву в [5]?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...