電子書籍の厳選無料作品が豊富!

Xcode3.2.5 で久しぶりにiPhoneアプリ作成の再勉強をしていますが、

IBOutlet が Interface Builder で認識しません。

手順###
新規プロジェクトで Window-based Application を選択して
HelloWorldプロジェクトを作成。

HelloWorldAppDelegate.h
に以下のように記述

#import <UIKit/UIKit.h>

@interface HelloWorldAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
IBOutlet UILabel *label; //←追加
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UILabel *label; //←追加

@end

保存して、MainWindow.xib をクリックし Interface Builder を起動しましたが、
Hello World App Delegate をみても IBOutlet の label が
ちゃんと Inspector に表示されません。

以前、前のバージョンのXcodeで作成したものをみてみると
ちゃんと反映されるのですが新バージョンのXcodeだと具合が違うようです。

ググってみると
http://iphone-ipodtouch-development.blogspot.com …
が一番この例に詳しいようですがうまくいきません。

この解決法の説明をよろしくお願い致します。

A 回答 (4件)

> やはりシンクロしていないようです。



Nibファイルの名称が変わっていないか?
Nibファイルの情報ウインドウで、「フルパス」がプロジェクトフォルダ内になっているか?
「(Project Name)-info.plist」で、「Main nib file base name」が「MainWindow」になっているか?

ここらを確認してください。

作り込んだプロジェクトが、とつぜんおかしくなったのではなく、作ったばかりのプロジェクトがおかしいのですから、いちからプロジェクトを作り直したほうが、早いと思いますが……

あるいは、「ディスクユーティリティ」で「アクセス権の修復をする」という種類の問題なのかもしれません。

この回答への補足

とりあえず、プロジェクトを作成してすぐにはシンクロしないのですが、
上記の方法でIBOutlet がちゃんと反映されるようになったので
この質問を閉じさせていただきます。

また同じような質問を見かけた時にはよろしくお願い致します。w

メリークリスマス!

補足日時:2010/12/24 22:25
    • good
    • 0
この回答へのお礼

>「(Project Name)-info.plist」で、「Main nib file base name」が「MainWindow」になっているか?
は大丈夫でした。

あとシンクロしてIBOutletも反映されるようになりました。
が、プロジェクトを作成してすぐにはシンクロしてくれません。

一旦、プロジェクトを閉じて
プロジェクトファイルの中の、
HelloWorld.xcodeproj アイコンを直接クリックして作業を開始する時に限って
ちゃんと緑のランプがつきシンクロするのです。

よくわからないのは、
Xcodeのメニューから「ファイル→最近使ったプロジェクトを開く」でプロジェクトの作業を開始した場合は
シンクロされないのです。

過去に作成したプロジェクトがうまくいったのは、
プロジェクトファイルの中の ~.xcodeproj をクリックしたからでした。

「ディスクユーティリティ」で「アクセス権の修復をする」してみて最後のお礼とさせていただきます

お礼日時:2010/12/24 22:09

Interface Builderのファイルメニュー「Reload All Class Files」を実行してみてください。

このメニューは、Interface BuilderがリアルタイムでXdodeにシンクロするようになる前のバージョンで、シンクロさせるメニューです。
これでシンクロするかしないかで、問題を絞り込めるでしょう。
    • good
    • 0
この回答へのお礼

何度も回答ありがとうございます。

まだ解決はしておりませんが、糸口はつかめました。

やはりシンクロしていないようです。

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.

というポップアップ表示がされます。
どうしてシンクロされていないのか今調べています。

お礼日時:2010/12/24 21:11

> イージーミスだとうれしいのですが…


> 最終手段としてはもう一度Xcodeインストールということでしょうか

ヘッダファイルを変更したあとに、保存していないとか、考えられるイージーミスは、ほかにもあります。

Xcodeを再インストールする前に、プロジェクトを最初から作り直してみては、いかがですか?

> Xcodeもしくは、Interface Builder のどこかでそのような設定をする場所があるのかも知れません。

そうお考えなら、どういう環境設定の変更をなさったのか、思い出す限り列挙してください。もちろんデフォルトのままなら、問題が起きることはありません。
とにかく、再現ができなければ、だれも解決法を探すことはできないので、「こうすれば、だれの環境でも、かならず再現する」というものを提供していただくことが、すべての始まりです。
    • good
    • 0

こちらのXcodeのバージョンも、3.2.5です。


おっしゃるとおり、忠実に再現して、Interface Builderを起動しましたが、下図のとおり、インスペクタに「label」が表示されます。

おそらくスペルミスなど、イージーミスが原因だと思われます。よーく、ご確認ください。
「IBOutlet が認識されない」の回答画像1
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

スペルミスに関しては、質問文そのままのコードをコピペしてもがうまくいきません。

以前作成したプロジェクトを開くとしっかりと認識してくれているので、
Xcodeもしくは、Interface Builder のどこかでそのような設定をする場所があるのかも知れません。

イージーミスだとうれしいのですが…
最終手段としてはもう一度Xcodeインストールということでしょうか…トホホ

お礼日時:2010/12/24 19:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!