【Xcode(Objective-C)】謎の実行時エラー?ありえないタイミングで処理が動いてnilで落ちる・・・

Xcode(Swift/Objective-C)における、技術メモです。
自身の脳内整理・備忘録を兼ねてメモしています。

謎の現象?でドハマりしたので、忘れないようにメモしておきます。
原因や再現性も不明であるため、あまり参考にはならないかもしれませんが・・・

※もし何かございましたら、下部「コメント」欄にいただけるとありがたいです。

現象

動作環境

Xcode 11.3.1
使用言語はObjective-C
iPad mini (11.3.1) 実機で稼働確認

現象

ある程度コーディングされているソースに対して、「ふつうに UIButton のOutlet接続」を追加し、アプリを起動すると「nil」で必ず落ちるようになりました。

該当のUIButtonは、もともとタップした時のアクションを実装しており、
デバッグで見る限り、どうもnilで落ちている箇所がこの「タップした時のアクションの処理でnilを受けてしまい落ちた」と見えます。

また、同種類の処理(UIButton)は6つあり、そのうち3つはうまく動作、(コメントアウトしながら確認したところ)あと3つは同じ落ち方をしました。

不可思議なのが、以下の点です。

  • 「タップした時に呼ばれる関数」であるにも関わらず、呼ばれてnilで落ちる
    (=nilの状態で呼ばれるわけがない箇所なのに、処理が走っている)
  • 同種類の処理で、うまくいくパターンといかないパターンがある

XcodeやiPad miniを再起動しても状況は変わらずでした。(100%落ちる)

解決策

解決策と言っていいのかもよく分かりませんが、、、

うまく処理ができなかった3つのパターンについて、InterfaceBuilderとの接続(IBOutlet、IBActionの両方)を、変数名を変更して作り直しました。
(中身の処理は変更なし)

それだけでうまく動作するようになりました。

Xcodeのバグでしょうか・・・?
※これだけでほぼ半日費やしました、、、( ; _ ; )

レアすぎて?再現するか不明、ググる検索キーワードも難しい、、、といった現象ですが、もし何かのお役に立てればと・・・

※ご回答希望の場合は、ご連絡先も記入ください
"意見が持てる" デジタルコラム
絶賛配信中!

メルマガ詳細はこちら >>>

送信時点で「Privacy Policy」に同意したものとみなします。
広告を含むご案内のメールをお送りする場合があります。
   
         
最後までお読みいただき、ありがとうございました。
以下も、ぜひご活用ください^^
出版物
ITmedia
メルマガ
Site Access Log by HTTP Header

    >情報システムの

    情報システムの"教科書"本を発売中!


    ■ 情シス、システムコンサルタント、システムエンジニアの方へ
    情シスの定石(技術評論社)

    ■ システムエンジニア、情シスの方へ
    システム設計の教科書(技術評論社)

    CTR IMG

    株式会社グロリア ご紹介