【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のバグでしょうか・・・?
※これだけでほぼ半日費やしました、、、( ; _ ; )

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

関連リンク

関連記事

iOS、Macなど、Apple製品のアプリを開発するための開発統合環境「Xcode」に関連するTechnology Memoです。 [adcode] 特集 Comming Soon... 関連記事 [sitecard subt[…]

記事情報や役立ち情報を発信します!
Click to Hide Advanced Floating Content
Click to Hide Advanced Floating Content