コマンドボタンのイベントを「アクション」ではなく「アウトレット」に設定してしまいました。自動ドラッグ機能により、xcode は applicationDelegate と .h および .m ファイルで参照を生成しました。.h および .m ファイルからエントリを削除しましたが、不足している参照をまだ探しているため、シミュレータは実行されません。どこにも言及されていないアウトレットが見つかりませんでした。私はiOSプログラミングにかなり慣れていません。誰でもこれに対する解決策を提案できますか?
3 に答える
インターフェイスビルダーでアイテムからアウトレットのリンクを解除する必要があります。アウトレットをリンクした UI 要素を選択し、[接続インスペクター] で削除します。
小さな「x」をクリックしてください^^^^
不要な Outlet 参照を取り除く方法を知りたくてここに来る人には、2 つの異なる理由があると思います。
- Interface Builder の使用中に不要なアウトレットが作成されました。
- 別のプロジェクトのビュー コントローラーからいくつかのアウトレット コードをコピーしました。
どちらの理由も、解決するのはかなり簡単です。
IB の不要なコンセント
方法 1
ストーリーボードでビューを右クリックし、参照アウトレットのそばにある小さな x をクリックします。
方法 2
ドキュメント アウトラインでビュー名を右クリックします。次に、参照アウトレットのそばにある小さな x をクリックします。
方法 3
ストーリーボードでビューを選択し、[接続インスペクター] をクリックします。次に、小さな x をクリックしてアウトレット参照を削除できます。
コード内の不要な参照
ビュー コントローラーのコードをあるプロジェクトから別のプロジェクトにコピーすると、アウトレットで奇妙なことが起こることに気付くでしょう。アウトレットを接続することなく、最初のプロジェクトからのビューを参照しています!
小さな円を左クリックして参照リンクをクリックすると、他のプロジェクトのストーリーボード ビューに移動することさえできます。この参照を取り除く方法を理解しようとすると、気が狂ってしまう可能性があります。
幸いなことに、修正する必要はまったくありません。深くて見つけにくい参照リンクをコピーしませんでした。View Controller とアウトレット名が両方のプロジェクトで同じであるため、Xcode は混乱しています。基本的に、その小さな円の言うことは無視してください。最初のプロジェクトを閉じると、Xcode が最終的に問題を解決します。この回答のパート 1 のメソッドを使用して、現在のプロジェクトのビューに参照アウトレットがあるかどうかを確認してください。
派生データを削除する必要はありません。とにかく問題は解決しません。両方のプロジェクトをもう一度同時に開いてみると、同じ奇妙な動作が発生します。私がこれを理解した方法は、同じ名前のビュー コントローラーと同じ名前の参照アウトレットを持つ 2 つの新しいプロジェクトを別々に作成することでした。私は何もコピーしませんでしたが、Xcode は一方が他方を参照していることを示しました。私が言ったように、それを無視してください。
コマンド ボタン アウトレットのストーリーボード/xib にも表示されます。
そこからも削除してください。