- ベストアンサー
IBOutletが認識されない
- Xcode3.2.5で久しぶりにiPhoneアプリ作成の再勉強をしていますが、IBOutletがInterface Builderで認識しません。
- 新規プロジェクトでWindow-based Applicationを選択し、HelloWorldプロジェクトを作成しました。しかし、MainWindow.xibを開いてもIBOutletのlabelが表示されません。
- 古いバージョンのXcodeで作成したものでは正常に表示されますが、新しいバージョンでは表示されません。解決策を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> やはりシンクロしていないようです。 Nibファイルの名称が変わっていないか? Nibファイルの情報ウインドウで、「フルパス」がプロジェクトフォルダ内になっているか? 「(Project Name)-info.plist」で、「Main nib file base name」が「MainWindow」になっているか? ここらを確認してください。 作り込んだプロジェクトが、とつぜんおかしくなったのではなく、作ったばかりのプロジェクトがおかしいのですから、いちからプロジェクトを作り直したほうが、早いと思いますが…… あるいは、「ディスクユーティリティ」で「アクセス権の修復をする」という種類の問題なのかもしれません。
その他の回答 (3)
- harawo
- ベストアンサー率58% (3742/6450)
Interface Builderのファイルメニュー「Reload All Class Files」を実行してみてください。このメニューは、Interface BuilderがリアルタイムでXdodeにシンクロするようになる前のバージョンで、シンクロさせるメニューです。 これでシンクロするかしないかで、問題を絞り込めるでしょう。
お礼
何度も回答ありがとうございます。 まだ解決はしておりませんが、糸口はつかめました。 やはりシンクロしていないようです。 Interface Builderにて MainWindow.xibウィンドウの下あたりに 本来ならば、緑のランプが付いているはずが、 無色のままで、そこをマウスオーバーすると There is no Xcode project associated with this document. Interface Builder will synchronize with open Xcode projects that contain this document. というポップアップ表示がされます。 どうしてシンクロされていないのか今調べています。
- harawo
- ベストアンサー率58% (3742/6450)
> イージーミスだとうれしいのですが… > 最終手段としてはもう一度Xcodeインストールということでしょうか ヘッダファイルを変更したあとに、保存していないとか、考えられるイージーミスは、ほかにもあります。 Xcodeを再インストールする前に、プロジェクトを最初から作り直してみては、いかがですか? > Xcodeもしくは、Interface Builder のどこかでそのような設定をする場所があるのかも知れません。 そうお考えなら、どういう環境設定の変更をなさったのか、思い出す限り列挙してください。もちろんデフォルトのままなら、問題が起きることはありません。 とにかく、再現ができなければ、だれも解決法を探すことはできないので、「こうすれば、だれの環境でも、かならず再現する」というものを提供していただくことが、すべての始まりです。
- harawo
- ベストアンサー率58% (3742/6450)
こちらのXcodeのバージョンも、3.2.5です。 おっしゃるとおり、忠実に再現して、Interface Builderを起動しましたが、下図のとおり、インスペクタに「label」が表示されます。 おそらくスペルミスなど、イージーミスが原因だと思われます。よーく、ご確認ください。
お礼
早速の回答ありがとうございます。 スペルミスに関しては、質問文そのままのコードをコピペしてもがうまくいきません。 以前作成したプロジェクトを開くとしっかりと認識してくれているので、 Xcodeもしくは、Interface Builder のどこかでそのような設定をする場所があるのかも知れません。 イージーミスだとうれしいのですが… 最終手段としてはもう一度Xcodeインストールということでしょうか…トホホ
お礼
>「(Project Name)-info.plist」で、「Main nib file base name」が「MainWindow」になっているか? は大丈夫でした。 あとシンクロしてIBOutletも反映されるようになりました。 が、プロジェクトを作成してすぐにはシンクロしてくれません。 一旦、プロジェクトを閉じて プロジェクトファイルの中の、 HelloWorld.xcodeproj アイコンを直接クリックして作業を開始する時に限って ちゃんと緑のランプがつきシンクロするのです。 よくわからないのは、 Xcodeのメニューから「ファイル→最近使ったプロジェクトを開く」でプロジェクトの作業を開始した場合は シンクロされないのです。 過去に作成したプロジェクトがうまくいったのは、 プロジェクトファイルの中の ~.xcodeproj をクリックしたからでした。 「ディスクユーティリティ」で「アクセス権の修復をする」してみて最後のお礼とさせていただきます
補足
とりあえず、プロジェクトを作成してすぐにはシンクロしないのですが、 上記の方法でIBOutlet がちゃんと反映されるようになったので この質問を閉じさせていただきます。 また同じような質問を見かけた時にはよろしくお願い致します。w メリークリスマス!