@hhhttt

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

textFieldタップ時にアプリが落ちることがあります

発生している問題

swiftでiOSアプリを開発しているのですが、カスタムtextFieldを配置している画面において、これをタップするとアプリが落ちる問題が起こっています。

ただし、全ての端末において必ず発生しているわけではありません。iOS14.4/iPhoneXrの特定の実機では毎回必ず発生するのですが、別の実機(iOS13.4/iPhone8)やシミュレータ(iOS13.4,14.2,14.4の各種端末)では一度も発生しませんでした。

また、textFieldタップ時にキーボードの代わりにDatePickerを表示させるカスタムtextFieldを使用した場合、

if #available(iOS 13.4, *) {
    dp.preferredDatePickerStyle = .wheels
}

を使用して、ドラムロール式のDatePickerを使用した場合はtextFieldタップ時に落ちますが、
逆にiOS14デフォルトのDatePickerを使用した場合、日付一覧表示まではできますが、日付を選択してDatePickerが閉じられるタイミング(あるいは選択した日付がtextFieldに入力されるタイミング?)で落ちます。

いずれの場合も、落ちた際のログを確認すると

 [AXCommon] *** Assertion failure in -[UIView(UIAccessibilityElementTraversal) _addAccessibilityElementsAndOrderedContainersWithOptions:toCollection:], UIAccessibilityElementTraversal.m:1128: Footer is equal to self. Infinite recursion

が延々と続いています。この処理が何なのかは不明ですが、どうもこれが再現なく続いて処理落ちしている様です。

原因が分からず困っています。どなたか、原因・解決法が思い当たる方はいらっしゃいませんでしょうか。

1 likes

1Answer

Infinite recursion このメッセージから想像するに無限再帰が発生しているようです。
おそらくaddSubviewやaddSublayerをしてる際にループ構造が発生してしまっているのではないかと推測します

1Like

Comments

  1. @hhhttt

    Questioner

    回答ありがとうございます。その方向性でコードを洗い直してみます。

Your answer might help someone💌