Как узнать, какое исключение было сгенерировано в отладчике Xcode (для iPhone)?

(ответ переместился из этого дубликата )

Вот вариант, который является

  • tail-recursive
  • не использует какие-либо методы из библиотеки (лучше или хуже)

Код:

def compress[A](xs: List[A]): List[A] = {
  @annotation.tailrec 
  def rec(rest: List[A], stack: List[A]): List[A] = {
    (rest, stack) match {
      case (Nil, s) => s
      case (h :: t, Nil) => rec(t, List(h))
      case (h :: t, a :: b) => 
        if (h == a) rec(t, stack) 
        else rec(t, h :: stack)
    }
  }
  rec(xs, Nil).reverse
}

Пример

println(compress(List('a, 'a, 'a, 'a, 'b, 'c, 'c, 'a, 'a, 'd, 'e, 'e, 'e, 'e)))

создает следующий выход:

List('a, 'b, 'c, 'a, 'd, 'e)

29
задан Forge 18 November 2017 в 09:06
поделиться

1 ответ

Поместите точку останова в objc_exception_throw и запущенный Ваше приложение через Отладку вместо Выполнения

Разъясниться, что Вы на самом деле видите, когда Вы получаете исключение без точки останова, всегда - то же отслеживание стека - это - обработчик необработанных исключений. Тип исключения зарегистрирован к консоли Run, но если Вы хотите видеть след для того, где исключение было повышено, это - то, для чего точка останова.

52
ответ дан 28 November 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: