一応解説など…w
さて、iPhoneプログラミングを初めてすでに5日。なんだか解らないけどやっぱり検索で訪問する方も多いようで、けっこう罪作りだよねぇ…アレw
目指せ!iPhoneアプリ開発エキスパート
http://gihyo.jp/dev/serial/01/iphone
↑そのアレw
ClassOutletsがInspectorから消えてから幾星霜w。だれも消えた事に疑問を呈して居ないのもさることながら、例のアレにもフォローすらないと来ている…w
こんな屑ブログと違って、影響力が違うんだからキチンと対処するべきだろうに、9/18に出された質問も、いま流行(?)のホッタラケ状態のまま…w
まぁ、気持ちは解らんでもないが、ライターとして書いたのなら、責任も持たなきゃw(註:返答書くために、あぽーに質問中で返事待ちだったら勘弁してくれw。ま、そうだとしても、いま質問中なので…とか載せるべきだろうw)
ま、お節介って事で早速回避方法を書こう。
CalssOutletsに追加する代わりはどうするか
問題のこの文章
インスペクタの中ほどに「Class Outlets」という項目があります。ここにアウトレットの一覧が表示されますが,まだ何もありません。「+」が付いているアイコンを押して,アウトレットを追加してみましょう。
だが、この代わりにどうやるかと言う…
- まず、新規プロジェクトを作ったら、InterfaceBuilderでViewの編集をしてコントロールを配置する。(この場合は、UILabelとUITextFieldの二つを配置してあります)
- で、ここで『File's OwnerのClassOutlets云々』って話になるんだけど、無いから進まない。
- 仕方がないので、XCodeに戻り、<プロジェクト名>ViewController.h(サンプルの場合だとptestViewController.h)に以下のように手を加える
※修正前
#import <UIKit/UIKit.h> @interface ptestViewController : UIViewController { } @end
↓
※修正後
#import <UIKit/UIKit.h> @interface ptestViewController : UIViewController { IBOutlet id ptestLabel; } - (IBAction) changeTextField:(UITextField *)sender; @end
細かい解説はめんどうなのでしませんw
ただ、ClassOutletsで追加する筈だった物を『IBOutlet』で、ClassActionsで追加する物を『-(IBAction)』で記述する訳です。
で、これをSaveしたら、InterfaceBuilderに戻ります。
- File's OwnerのOutletsの項目に、先ほどXcodeで記述したアウトレットとアクションが表示されている筈です。
- 後は、右端の○をクリックして対応する場所にみにょーんと線を延ばして接続しましょう。ここから先は、http://gihyo.jp/dev/serial/01/iphone/0004?page=3 に書かれている方法と同じになります。
まぁ、こんなもんだ。
つーか、これで回避できます。ただそれだけ。
全てをInterfaceBuilderでやるか、どうかの違い。って言うか、この手の解説はweb上のどこにでも転がって居るんだよなぁ…俺がへたくそな解説しなくてもw
はやいとこ、返事すれよ。
いや、本当に。
影響力が違うんだわ。軽い気持ちで原稿受けた訳でも無いだろうに、ちゃんとしてくれよーw