TableViewCellに埋め込まれるビューを含むペン先を作成しようとしています。インターフェイスと実装ファイルを作成しました、ResultCell.h
およびResultCell.m
。それらは在庫があり、すぐに使用でき、コードの変更はありません。
次に、空のXIBファイルを作成し、UIViewをその上にドラッグします。次に、[ファイルの所有者]をクリックし、タイプをResultCell
に設定します。ビューをクリックし、そのクラスをResultCell
にも設定します。
ここに私が持っている問題があります:
ResultCell.h
ファイルは、ResultCell.xibファイルを表示しているときに表示されません。 [自動]をクリックしてファイルを選択し、強制的にロードする必要があります。ビューを作成して再作成しようとしましたが、機能していないだけで、忍耐力を失い始めました。どんな助けでも大歓迎です!
これは特定の問題では機能しない場合がありますが、新しく作成されたペン先を使用すると、時々このエラーが発生します。以前と同じ名前のnibsとView Controllerを削除して再作成しても問題は解決しませんでしたが、Xcodeを再起動すると解決しました。
今日も同じような状態になりました。非常に奇妙でした。プロジェクト内の既存のViewControllerクラスにXIB(新規または既存)をアタッチできましたが、新しいViewControllerを作成できず、XIBに適切にアタッチすることはできませんでした。 「アシスタント」機能は機能せず、IB-to-headerfile-connection機能も機能しませんでした。
プロジェクトを閉じて再度開くと、修正されませんでした。
XCodeを終了して再起動しても修正されませんでした。
新しいプロジェクトの作成と機能のテストはうまくいきました。そのため、どこかのキャッシュに何か破損していると思いました。
私の解決策
ちなみに、フルクリーンを実行しただけでは問題は解決しないようです。派生データを破棄する必要がありました。私はプレイしていたgitゲームのためにこのポジションに着いたと確信していますが、以前のgitリビジョンに戻すことも役に立たなかったので、どうやって抜け出すのか分かりませんでした。 (それは、プロジェクト自体によって追跡されなかったものでもあるという大きな手がかりでした。)
この問題が発生したばかりで、Xcodeを再起動しても修正されませんでした。プロジェクトからクラスファイルを削除してから追加し直し、動作を開始しました。
私はまったく同じ問題を抱えていました。そして、私は試しました:
どれもうまくいきませんでした。私のために働いたのは、単にすることでした:
できました!
Xcodeを再起動してもうまくいかない場合は、新しい.mファイルを切り替えてターゲットメンバーシップに戻すことができることがわかりました。
これは私を助けました:
「パネル」が表示されない場合は、ウィンドウの右上隅を見て、適切な「表示」ボタンを有効にしてください。 「表示」ボタンが表示されない場合は、右上のカプセルボタンをクリックしてください。
xCodeでオーガナイザーに移動し、プロジェクトをクリックして、派生データの削除...をクリックします
.mファイルがen.lprojフォルダー内に移動されていることに気付きました。
Xcodeから.mファイルを削除(参照のみ)し、.mをen.lprojから移動します。問題を解決します。
心配しないで、すべての接続を取り戻します。
私の場合、対応するヘッダーファイルに「偽の変更」(スペースだけ)を加えるのに役立ちました。
今日も同じ問題に遭遇しました。 XCodeを再起動しても問題は解決しませんでした。"Delete"オプションの"Derived Data"のprojectを使用して、物事を正常に戻すことができました。Organizerにあります。オーガナイザーは、「派生データにはインデックス、ビルド出力、ログが含まれます」と言います。indexまたはbuild outputのいずれかがこの問題の原因であったと思います。
おそらく私のために働いたのはこれです..(Xcode v4.5)
これは機能しませんでした
私は.hのインターフェイス定義へのドラッグを制御しようとしていました
@interface SearchViewController : UIViewController
@end
これは機能しました(それが機能するはずだったのかもしれませんが、以前は知りませんでした)開き括弧と閉じ括弧を参照してください。閉じた括弧の後にドラッグアンドドロップを制御します。
@interface SearchViewController : UIViewController
{
}
@end
Swiftで書かれたプロジェクトでも同様の問題がありました。
私のために働いたのは、このようなコードでIBOutletを設定することでした
@IBOutlet var foo: UIView?
その後、コード行のすぐ隣に表示される小さな円にドラッグして、Interface Builderに接続します。
この問題は、ファイルを同じ名前の新しいファイルで置き換えるときにほとんど発生するXcodeのバグのようです。 Xcodeは同じ名前の古いファイルの参照を保持しているようです。
とにかく、これを修正する方法は次のようです:
(手順1と2だけで修正されました。)
UITableViewCell
のサブクラスでなければなりませんUIView
を空のキャンバスにドラッグするのではなく、UITableViewCell
をドラッグする必要があります新しいセルをロードするたびに、次を呼び出します。
[[NSBundle mainBundle] loadNibNamed:nibName
owner:controllerWithOutletToCell
options:nil]
ロード後、セルを使用し、ivar/outletをnilに設定して、次のロードの準備をします
他の方法もありますが、これは一般的です
上記の回避策はいずれもコネクタの問題を解決しなかったため、次のstackoverflowスレッドに遭遇するまでペットプロジェクトを棚上げしました。
https://stackoverflow.com/a/15873770/28468
私は以前のバージョンのXCodeで大規模なプロジェクトに取り組んでおり、インデックス作成をオフにしていました。インデックス作成を再度有効にすることで、私の問題は修正されました。
defaults delete com.Apple.dt.XCode IDEIndexDisable
Interface BuilderのD&D機能を使用できるようになりました。これが他の人に役立つことを願っています...
私にとって、DerivedDataのクリーニングも削除も問題を解決しました。
UIViewControllerクラスを何度も削除して再作成しようとしましたが、何度も問題が発生しました。
次に、UIViewControllerクラスを再作成し、別の名前を付けました。これで問題は解決しました。
同じ問題があります。プロジェクトの再構築は私を助けますCommand+B
。
@implementationと@synthesizeの間に線を入れてください。ここでの答えのほとんどは共通しています。それは私のために働いた
@implementation
@synthesize
これは古いトピックかもしれませんが、将来同じ問題が発生した場合に備えて、関連する.xib、.h、および.mファイルを削除して、新しいファイルを作成してください。私にとって、.hファイルのUIViewControllerは紫色ではなく、バックスペースで入力するだけでも役に立ちませんでした。
クラスファイルの名前を変更すると、XIBからリンク解除される場合があります。この答えは私がこれを発見するのに役立ちました:
Ctrlキーを押しながらボタンからメソッドにドラッグします。Xcode/ Interface Builder
Identity Inspectorでカスタムクラスが正しく設定されていることを確認します。
同様の症状ですが、原因は異なります。
標準ファイルテンプレートのコメント行の1つが//から/になり、ファイルがコンパイルされないため、アシスタントビューにフォーカスがあるときにバックスペースを押したようです。
コメントを修正することで、SDKはファイルを解析し、UIViewControllerとして認識し、アウトレットに追加できました。
SO-この問題がある場合は、ビルドまたは分析を行って、View Controller .hファイルで修正が必要なエラーがあるかどうかを確認してください。その後、他のソリューションを試してください。
これが誰かに役立つことを願っています。
派生データフォルダーを削除する必要がありました。 [ウィンドウ]-> [オーガナイザー]-> [プロジェクト]-> [派生データの削除]をクリックする必要があります。
XCODEを再起動します。
あなたは行ってもいいはずです!
Swiftを使用して、同様の問題が発生しました。 commentsが問題の一部であることがわかりました。
デフォルトのView Controllerを活用し、いくつかの作業を行った後、最初のView Controller全体をコピーしてViewDidLoad()のみにストリップし、クラスの名前をTestViewControllerに変更することにより、2番目のView Controllerを作成しました。ビルドは機能し、コードが実行されました。すべてが良かった。
UITextFieldをドラッグしてアウトレットを作成したとき、それは許可されませんでした。コメントがまだ「ViewController.Swift」と言っていることに気づいたので、コメントテキストを「TestViewController.Swift」に変更して再構築しました。コンセントに接続できました!
発生したのは、インデクサーがクラス名だけでなくコメントも読んでいて、どういうわけか混乱しているのだろうかと思います。
ここですべて試してみましたが、何も機能しませんでした(Xcode 5の開発者プレビューを使用)。
私のために働いた唯一のことは、この不完全な行をインターフェースファイルに入れることでした:
@property (nonatomic, weak)
何らかの理由で、.xibからのドラッグアンドドロップによるアウトレットとアクションの追加は、その後正常に機能しました。
他のプロジェクトからファイルをコピーした場合は、[ターゲットに追加]ボックスをオンにしてください。
この問題が発生し、上記にリストされていない解決策を見つけました。
私の場合、カスタムビューコントローラーがクラスを認識しなかったため、クラス.hファイルに何か問題があることがわかりました:UIViewController(紫ではなく黒でした)。他のすべてのカスタムView Controllerには、紫色のUIViewControllerがありました。
私の場合、そしておそらくあなたの場合、クラスをターゲット/ビルドフェーズ/コンパイルソースドロップダウンに追加する必要がありました。 .mを追加する必要があります。他のすべての.mはそこにありましたが、これはありませんでした。
追加すると、:UIViewControllerが紫色で表示され、すべて正常に機能しました。
XCode 7.1では、ソースファイルの別のポイントにコネクタを追加することができました。エラーの1つがクラスであるかのように参照されていました(意味がありませんでした)。その変数の上ではなくその変数の下にコネクタを追加すると、エラーが発生しなくなりました。
「TARGET」の一部ではない新しいクラスは、これらの答えのいくつかによって示唆されるように、おそらくこれの根本的な原因です。
新しいココアクラスを作成するとき、デフォルトでターゲットに新しいクラスを追加するオプションがデフォルトでチェックされていますが、何らかの理由で、保存をクリックしたときにチェックされない場合、この問題が発生します。
新しいクラスをアプリのターゲットに追加するこれらの回避策はすべて、問題を解決するために機能し、これらすべての「修正」に共通するものです。
XCodeにはいくつかのバグがあるため、新しいファイルがデフォルトでアプリのメインターゲットに追加されない可能性があります。修正はメインのTARGETに「壊れた」クラスを追加するに要約されます
私の場合、他の依存関係を持つ複数のプロジェクトがあります。派生データを削除するかXCodeを再起動して解決しようとしましたが、うまくいきませんでした。最後に、私は次の方法を試してみましたが、うまくいきます:
ターゲット>ビルドターゲットアーキテクチャのみ>に移動し、デバッグとリリースの両方をNOに設定します。
ワークスペース内のすべてのプロジェクトにこれを設定し、再コンパイルして他のエラーがないことを確認します。意味をなさないかもしれませんが、どういうわけかそれをしました。コンパイル中に、リンカーエラーやシンボルが見つからないなどの他の問題が発生しました。
このクラスビューの* .mファイルの場合、[ファイルインスペクターを表示]を開き、このプロジェクトの[ターゲットメンバーシップ]のチェックを外してから、[クリーン](メニュー[製品]-> [クリーン])