Xcode(4.6.3)の使用を開始して以来、このバグは私を夢中にさせてきました。 Storyboardアイテムをコードにリンクしようとすると、常にエラーが発生します。
ViewControllerという名前のクラスの情報が見つかりませんでした。
これは、カスタムクラスでも発生します。私は次のような方法を試しました:
クラスが何であるかに関係なく、Ctrlキーを押しながらドラッグしてプロジェクトの接続を作成することはできません。新しいテンプレートアプリケーションでも同じ問題が発生します。コードを手動で入力し、Ctrlキーを押しながらドラッグすると、正常に接続できますが、自動的に追加できません。私がこれまでインターネットで見つけることができたものは何も役に立ちませんでした。ポインタはありますか?
私にとってこの問題を解決したのは、実際にプロジェクトからクラスを削除することでした。
手順:
これにより、Xcodeがクラスをストーリーボードにリンクするように強制されるようです。
注:私にとって、以下はnotでした:
これはApple側のバグだと思う
まだ誰もがこれにイライラしている場合、物事を機能させるコツがあります。
私がやっていることは、クラスにアウトレットを手動で入力することです。例:@IBOutlet weak var someView: UIView!
、そしてコードからをIBまたはストーリーボードのビューにドラッグします。この後、IB/Storyboardからクラスにドラッグして接続し、アシスタントエディターが「自動」などでクラスを認識します。
毎回動作します。
2017年4月にXcode 8でこの問題が発生しました
コードを使用してアウトレットを作成し、コンパイルして修正しました。例えば:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
Xcodeが大好きになりました…
編集:Xcode 9でまだ起こっています
私はすべてを試してみましたが、うまくいきませんでした。
私のView Controllerはすべて認識されていなかったため、すべてのファイルを削除して追加し直すことは大きなプロジェクトなのでオプションではありませんでした。
私にとっては、以下がうまくいきました:
「クリーン」と「クリーンビルドフォルダー」を実行します(「クリーン」ビルドフォルダーコマンドを取得するには、[製品]メニューの[オプション]を押します)
Xcodeを停止
ターミナルで、派生データフォルダーに移動します。
(/ Users // Library/Developer/Xcode/DerivedData)
プロジェクトの派生データディレクトリを削除します。
空気中の波の死んだ鶏
Xcodeを開始
私のために働いたのは、ボタンからコードに接続をドラッグする代わりに:
この方法でコードをリンクすると、それ以降は正常に機能しました。
これまでのところ、いくつかの回答を組み合わせて行う必要がありました。
(ストーリーボードのView Controllerの左上にある黄色のボタンをクリックします-> IDインスペクターに移動します(オプション+コマンド+ 3)->上部のカスタムクラス名を削除します)
(ファイルを右クリック->削除->参照の削除)
(ファイルがあったフォルダを右クリック->「[プロジェクト]にファイルを追加」)
人々が上記を試みても物事がまだ機能しない場合、私のために働いた奇妙なトリックは空白の塊にアウトレットを追加することでした。追加する行のすぐ上または下に他の行がない場合に機能します。奇妙なことですが、うまくいきました!
製品>クリーン(コマンド-Shift-K)で修正されました!
これは私のために働いた:
補足として、これが助けたかどうかはわかりませんが、上記の手順を実行する前に派生データも削除しました(Xcode設定>ロケーション)
これは、この問題を修正するために行った最も簡単な手順です。
これらの答えをすべて試しましたが、問題はXcodeがファイルのインデックスを作成できないことに関連していました。 Xcodeを終了してプロジェクトを再度開くことでこれを修正しました。もちろん、上記のすべての解決策を試した後、それを行いました:p
プロジェクトをクリーンアップして再ビルドするだけです。
私のテスト経験として、Xcodeで関連付けられたクラスを削除し、ファイルを再度追加する場合、この問題が発生します。
通常、これが発生したとき、クラスのコードをまだ保存していません。コードに飛び乗ってcmd + sを押すだけで、問題が正しい方法で修正されることがよくあります。
上記の手順はどれもうまくいきませんでしたが、問題を発見した可能性があります。少なくともそれは私のために働いたものであり、Xcodeのバグではありません。
アシスタントエディターで、viewControllerのコードがあるウィンドウの上部を確認します。右から3番目のオプションは「手動」と表示されますが、「自動」と表示されるはずです。これを変更すると、問題は解決しました!
全部試しました!
UIViewControllerのクラス名に「Test」という単語が含まれていないことを確認してください
バグレポートを提出しました。
「…という名前のクラスが見つかりませんでした」という同様の問題が発生していましたが、原因を突き止めるとその原因は愚かでした。項目からinterfaceにドラッグしていないことを確認してください-クラス自体にドラッグされていることを確認してください
StoryBoardでViewControllerを選択し、右側のパネル/"Customer class"/"class"の現在の値を削除してから、コントロールクラスを再度追加し(タイプ: "SampleViewController" ...)、入力します。 ->それは私のために働く
私にとって、カスタムクラスを指定したビューは、インターフェイスビルダーでコンパイルできませんでした。 @IBDesignable
とマークされました。
@IBDesignable
を削除してからアウトレットを追加し、@IBDesignable
としてマークすると、私の場合の問題は解決しました。
私の場合、Xcodeのインデックス作成プロセスの実行が停止したためです。 Macを再起動すると修正されました。
問題の.mおよび.hファイルを作り直し、「ViewController」のような一般的な名前ではなく、元の名前を付けようとします。あなたがそのファイルにさせたいことの線に沿って何かを試してみて、View Controllerで終わる(すなわち、「PizzaDecoraterViewController」)
次に、それらのファイルに接続するViewControllerを選択します。必ず内部のオブジェクトではなく、ViewControllerを選択してください。一番下の黒いバー(「最初の応答者」アイコンと「終了」アイコンがあるもの)をクリックします。 ViewController全体の輪郭が青になります。次に、IDインスペクタの[カスタムクラス]セクションに移動すると、最初のフィールドにグレー表示された[UIViewController]が表示されます。そのフィールドに、接続する.hファイルまたは.mファイルの名前を入力します(PizzaDecoratorの入力を開始します。自動補完が少し実行されます)。次にEnterキーを押します。
アシスタントエディタを開くとき、ドラッグアンドドロップしようとしているファイルが実際に正しいファイルであることを確認してください。
上記のようにすべてを行った場合、それは動作するはずです。
私の場合、うまくいったのは(少し奇妙ですが、うまくいきました)次のとおりです。
データソース(たとえば、UITableViewDataSourceのようなViewControllerの拡張機能)を追加してみてください。 XcodeはViewControllerのリロードを試みます。次に、プロトコルのメソッドを作成し(最初はXcodeがメソッドをオートコンプリートしませんでしたが、手動で作成しました)、IBOutletsを追加し、最後にデータソースを削除しました。
例:
class TestViewController:UIViewController{
// This viewController presents “Could not find any information for class named ViewController”
}
extension TestViewController:UITableViewDataSource{
//Add Some methods of the protocol, Xcode will try to autocomplete and then it's going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don't need it otherwise.
}
大丈夫な人はほとんどすべてのトップの答えを見たが、誰も私のために働いた。
だから私のために働いたのは次のとおりです:
Derived Data
アドレスをコピーします。これは、次を使用して実行できます。Xcode -> Preferences -> Location Tab -> Derived Data
Close Xcode
次に、派生データの場所に移動して、そこからプロジェクトのフォルダーを削除します。
さあ、Xcodeを開いて出来上がり!
プロジェクトの派生データを削除してみてください
プロジェクトフォルダーに移動し、派生データフォルダーを削除します
派生データが見つからない場合は、Finderに移動して
~/Library/Developer/XCode/DerivedData/"project"
(「プロジェクト」名をプロジェクト名に置き換えてください)
@ChrisHarrisonの答えについてコメントしたように、これらのことはうまくいきませんでしたが、派生データを削除するには https://stackoverflow.com/a/16182672/1449799
私の場合、私は同じクラス名を持っていて、Xcodeは私がターゲットにしているものを認識できなかったので、クラスの名前を選択する際には注意してください。
閉じているかどうかをFinder Xcodeから確認します。
Xcodeを強制終了して再起動します。
製品>クリーン
ファイル(参照のみ)を削除し、ファイルを再度追加します。
私はこれがほとんどの場合Xcodeが機能していることを知っていますが、私の場合は提案されたアクションのどれも問題を解決できず、プロジェクトの名前を変更しようとしたときに犯した間違いだと思うので、新しいプロジェクトを作成しましたすべてをインポートします。
これは最終的に修正されました。
Xcodeを再起動するだけで動作します。
これを試してください
rm -rf ~/Library/Caches/com.Apple.dt.Xcode
defaults delete com.Apple.dt.Xcode IDEIndexDisable
defaults write com.Apple.dt.Xcode IDEIndexEnable 1