新しいコンセント接続を挿入できませんでした:という名前のクラスの情報が見つかりませんでした


281

Xcodeで、ビューコントローラに関する情報がないというエラーが表示されました。

新しいコンセント接続を挿入できませんでした:という名前のクラスの情報が見つかりませんでした

なぜこうなった?

スクリーンショット1


2
これは以前に尋ねられたと思います: stackoverflow.com/questions/17735182/…–
Tapani

私は単にXcodeを終了してから、もう一度開きます。コンパイラーはすべてのファイルを再ロードし、探しているファイルを検出できます
ジェーンチキン

ビューコントローラーファイルに未接続のコンセントがないことを確認します。私はそうしたことを発見しました。削除した後、問題はありませんでした。
Kexは2016年

私にとって上記の解決策はどれも機能しませんでした。ビューコントローラーを削除する必要がありました。それをコピーしてストーリーボードに再度貼り付けそれを再利用しました。次に、ストーリーボードに新しいビューコントローラーをドラッグし、すべてがうまくいきました:) 同じ問題を抱えている人に役立つことを願っています。
Arslan Saleem 2016年

これはXCodeのバグであり、なぜ修正されないのかわかりません。XCodeを閉じて再度開く必要があります。アウトレットをもう一度配置しようとしたが、今回はENTERSの束を残してから作成します。何かを削除したり、他のオプションに時間を浪費したりする必要はありません...これで問題が解決します。
mavesonzini 2016

回答:


692

これを修正できるいくつかの問題を次に示します(難易度の高い順に)。

  • プロジェクトをクリーンアップします(製品>クリーンアップ
  • 手動で貼り付け

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }
    

    コントロールをドラッグします。(必要に応じて変更を入力してください。)も参照してくださいこれを

  • Xcodeを完全に閉じ、プロジェクトを再起動します。

  • Derived Dataフォルダーを削除します(Xcode> Preferences > Locationsに移動し、Derived Dataフォルダーの横にある灰色の矢印をクリックします。次に、プロジェクトフォルダーを削除します)。
  • クラスで[削除]をクリックし、参照を削除し(ゴミ箱に移動するのではなく)、再度追加します。(この回答を参照してください)

この手順が機能するように、ビューコントローラのクラスを削除することを忘れないでください
レジー

8
Xcode 8.3.2では、これらの手順はどれも機能しませんでした。「Identity Inspectorを表示」>「クラス」フィールドをクリア(カスタムクラスの名前を強調表示して削除)>「クラス」フィールドにクラス名を再入力 Xcodeはクラス名を自動補完しました。次にEnterキーを押します。
PeqNP 2017年

alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'〜/ .bashrcに行を追加して、コマンドpurgederiveddataを使用して1つのコマンドでクリアします
eskimwier

この問題を修正する別の方法を見つけました。これは、ビルド設定を変更してビルド速度を向上させたときに起こりました。 stackoverflow.com/a/50555888/2952876
Mathias Van Houtte

以下の私の解決策を試すことを強くお勧めします。頻繁に現れるバグのために人々が自分のコンピュータを再起動しなければならないことを知っていることを知ってうんざりするでしょう。
Stephen Paul

134

または、上記のいずれも機能しない場合は、まずアウトレットの名前をファイルに入力して@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!から、ペン先のアウトレットをクリックしてプログラムで作成した変数にドラッグします。クリーニング、ビルド、削除の手間をかけずに機能するはずです。


4
多くの場合、クリーンアップ、ビルドなどに年齢を費やす代わりに、より高速なソリューションを提供します。
mohonish

1
とてもいいです。これを実行すると、自動が表示され始めます。
AmJa

1
すべてのこぶしは、XIBオブジェクトをIBoutletsに接続します。次に、それらの制約IBOutletsを接続してみます。これがないと、常にエラーが表示されます。
Chandramani

また、新しいコンセントを挿入しようとする場所にも違いが生じます。なぜなら、リストの上部(上にクリアスペースがある場所)が機能したためです。リストの真ん中にはありませんでした。
リチャード

1
これはベストアンサーとしてマークする必要があります。それはより簡単で、より速く、より信頼性があります。また、常に機能します!良い仕事と感謝@StephenPaul
denis_lor

51

このエラーを取り除くには、次の2つの手順を実行するだけです

  1. 製品を使用してプロジェクトをクリーンアップ>クリーン
  2. プロジェクトを実行する

次に、アクションまたはアウトレットを追加してみます。それでおしまい。

ハッピーコーディング


4
奇妙なことに...この簡単な2つのステップは、私にとっても問題の解決に役立ちました。だから私はこれらの簡単なステップを最初に試すことをお勧めします:-)
クロスコード

49

ベストアンサーのヒントはどれもうまくいきませんでした。クレイジーになりました。その後、アシスタントエディタは何とかにセットを得ていたことに気づいたマニュアルと私が上だったViewController.swift(インタフェース)の代わりに、ViewController.swiftファイル。

それを変更し、問題を解決しました。少し恥ずかしいですがねえ、私たちはすべて学んでいます。

ここに画像の説明を入力してください


1
ライフセーバーの答え!他の答えはどれもそれを一度も永遠に解決しませんでした。エラーの説明があなたがweargファイルにあるかもしれない最低のヒントを与えていないのは残念です。ありがとう。画像の+1により、すべてが明確になりました。
Pauloco

私はかなり似ているが異なる点に気づきました。クラスの名前が表示されている上部のパスには、クラス名しかありませんでしたが、myProject> appName>コントローラー、次にクラスのパスの先頭がありません。私は別のクラスを選択し、問題のあるクラスに戻しましたが、すべて問題あり
ませんでした

15

ここに私のために解決されたステップがあります:

  1. View(storyboard / xib)からクラス名参照を削除して保存します。
  2. クラス名を再度追加して保存します。
  3. クリーンとビルド。

できました!


10

同じ問題がありました。私は解決策の下に疲れましたが、うまくいきませんでした:

  1. Clean Project (cmd + shift + k) そして Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived data そして Module Cache content

この問題の回避策は次のとおりです。

  1. ソースコードファイルに移動し、IBOutlet / IBAction手動で書き込む(コピーと貼り付けを推奨)

スクリーンショット1

  1. 次に、ストーリーボードファイルに移動してUtilitesウィンドウを開く
  2. 後藤 Connection Inspector
  3. その後、接続IBOutletおよびIBActionInterface Builderを持つソースファイルに書き込まれます。

スクリーンショット2


アウトレット/アクションのドラッグはまったく機能しませんでしたが、このように手動で行った後、すべてが再び正しく機能しました。
Jason

これは、接続を確立するための標準的な代替方法です。ラジオボタンアクションの場合、唯一の方法はAFAIKです。ストーリーボードでは、コントローラーを右クリックして機能を見つけ、接続することもできます。
素っ気

8

同じ問題がありました。Manualコントロール-ドラッグでアウトレットを作成しようとしたときに、X-Code アイテムが選択されていたよりも気づきました

ここに画像の説明を入力してください

自動に設定した後、機能しました

ここに画像の説明を入力してください


私はこの正確な問題を抱えていました。違いにも気づかなかった。
ジョシュアダンス

すごい!!!このバグクリーニングプロジェクト、xCodeの再起動、派生データの削除のために、そんなに多くの時間を失いましたが、それは私にとってうまくいった唯一の解決策でした!どうもありがとう!
アントンエレジン

7

プログラムでラベルとテキストフィールドを作成し、コードの左側にある小さな空の円からストーリーボードのコンポーネントにCommand-Dragすることで、この問題を解決しました。私の要点を説明するために、私@IBOutlet weak var HelloLabel: UILabel!はを記述し、次にCommandを押して、コードをストーリーボード上のコンポーネントにドラッグしました。


このソリューションは私にとって完璧に機能しました!別に@IBOutlet weak var myButton: UIButton私セットアップするために同じプロセスを使用@IBAction func doSomething(_ sender: Any) { }し、その後にこのFUNCを接続UIButton私のストーリーボード上。これを共有してくれてありがとう@KuboAndTwoStrings
Nii Mantse

6
  1. 作業中のプロジェクトを閉じます。
  2. プロジェクトの【DerivedData】フォルダを削除してください。(このフォルダーは、プロジェクトのフォルダー内、または
    ~/Library/Developer/Xcode/DerivedData/
    (プロジェクト)/)内、またはユーザーが設定した他の場所にあります。
  3. プロジェクトを再起動します。

4

このバグはXCODE 9で見つけることができるので、より簡単な回避策を見つけました。

ステップ1をビューコントローラーに移動し、接続するプロパティを次の例のように手動で記述します。必ず以下の形式を使用してください。

@IBOutlet弱い変数の質問StackView:UIStackView!

ステップ2はストーリーボードに移動し、ビューまたはステップ1で作成したプロパティに接続しようとしているものを接続します。

上記により、派生データを削除および消去する時間を節約できます。


3

クラスの名前を変更すると、このバグが発生しました。次に、以下の手順を実行するだけで解決しました

  • Xcodeメニュー-> Product->Clean
  • Restart Xcode

これは私にとって十分に面白い解決策でした。
ジョセフアストラハン

2

私の場合、これはbcでした。IBで新しいUIViewControllerファイルを選択し、最初に接続インスペクターで以前の接続を削除せずに、この新しいコントローラーにctrlキーを押しながらドラッグしようとしました。最初にそれらを削除して、再試行してください。


2

私にとっては、右側のタブ>ローカリゼーションで機能し、英語のチェックボックスをオンにしました。最初はベースのみがチェックされていました。その後、私はもう問題はありませんでした。お役に立てれば!


2

ここに画像の説明を入力してください

私が選択した自動 ViewController.swiftファイルを選択するオプションが。そして、私はコンセントをとることができます。


2

このエラーを取り除くためにのみ、次の2つの手順を実行してください。

1.  Clean Project using Product -> clean.
2.  Run the Project.

次に、アクションまたはアウトレットを追加/接続してみます。

何度も私のためにうまく働いています。


1

プロジェクトにSwiftファイルを追加したときに発生しましたObjective-C
ですから、この状況であなたができることはです。。

  • Select MY_FILE.Swift >> Delete >> Remove Reference
  • Select MY_FOLDER >> Add MY_FILE.Swift
  • Voila ! You are good to go .

これで終わりです!私は自分でこの問題を30分解決しようとしていますが、すでに笑っています。ストーリーボードでのこのような問題は簡単に修正できます。ありがとう!これは私に大いに役立ちました!
グレン

0

最も簡単な解決策:-xCode 7とiOS 9を使用しました。

あなたの.m

#import "VC.h"を削除します

.mを保存し、コンセントを再度リンクすると、正常に動作します。


0

私はxCode 7とiOS 9を使用しました。

あなたの.m

削除する #import "VC.h"

.mを保存し、コンセントを再度リンクすると、正常に動作します。

あなたの.m

追加 #import "VC.h"

.mを保存


0

これはどれもうまくいきませんでしたが、私はこれを理解しました。

ストーリーボード内で、対応するViewControllerをクリップボードにコピーして削除し、その後再び貼り付けました。

突然、すべてが再び魅力のように働いていました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.