1

移行中にアプリが断続的にフリーズします。デバッグモードでなんとかフリーズしたので、一時停止してスクリーンショットを撮りました。いくつかのメモ:

  • フリーズ状態では、CPU はまだタップに反応していたので、何らかの形でまだ反応しています。
  • スレッドを見ると、無限ループや重い関数などはないように見えました。

しかし、UI の ViewHierarchy を見ると、興味深いことが明らかになりました。トップ レベルの UIWindows が 2 つあり、トップ レベルは完全に空で、ボタン 1 はトランジション ビューによってオーバーレイされていました。

ここで考えられる犯人は何ですか?私のコードはスクリーンショットの下に含まれています:

スレッドが何もしていないように見える ここに画像の説明を入力

2 つの UIWindow の最初 (空白) ここに画像の説明を入力

2 UIWindow の 2 番目 ここに画像の説明を入力

  // view controller
  func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let question = dataAccessor.objectAtIndexPath(indexPath)
    delegate?.feedViewControllerDidSelect(self, question: question)
    tableView.deselectRowAtIndexPath(indexPath, animated: true)
  }

  // delegate for viewcontroller
  func feedViewControllerDidSelect(viewController: FeedViewController, question: Question) {
    let questionDetailViewController = QuestionDetailViewController.create(question, delegate: self)
    navigationController.pushViewController(questionDetailViewController, animated: true)
  }


  // Question Detail View
  static func create(question: Question, delegate: QuestionDetailViewControllerDelegate?) -> QuestionDetailViewController {
    let vc = StoryboardScene.QuestionDetail.instantiateQuestionDetailVC()
    vc.question = question
    vc.delegate = delegate
    return vc
  }
4

0 に答える 0