『初めてのiOSアプリケーション』というアップルのドキュメントを読んでいるのですが、次の部分がわかりません。わかりやすく教えて下さい。長文・図解ともに歓迎です。


接続を確立することは、ターゲットとしてView Controller、アクションとしてchangeGreeting:セレクタ、コントロールイベントとしてUIControlEventTouchUpInsideを指定して、ボタンのaddTarget:action:forControlEvents:を起動することと同等です。

https://developer.apple.com/jp/devcenter/ios/library/documentation/iPhone101.pdf
39ページ

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/05/15 19:03:02
  • 終了:2012/05/22 19:05:03

ベストアンサー

id:meefla No.1

meefla回答回数984ベストアンサー獲得回数4602012/05/16 21:52:17

ポイント50pt

まず、期待されている回答(わかりやすい解説)ではない事をお断りしておきます。
ご満足いただけなければ、ポイントは不要です。

この手のドキュメントで日本語がわかりにくい場合、英語の翻訳が適切でない事があるので、英語版を探してみました。
Your First iOS App の翻訳と思われますが、英語版の方は Xcode 4.3 対応のために、2012年2月16日付けで改訂されています。
(日本語版の最終更新は、2011年10月12日)

このページの右上にある "PDF" のリンク
http://developer.apple.com/library/ios/documentation/iphone/conceptual/iPhone101/iPhone101.pdf
でダウンロードできる PDF 版で比較しますと、該当の部分は38ページの真ん中あたりで、

  • You created a connection between the button and the view controller.

Next, you create connections between the view controller and the two remaining UI elements (that is, the label and the text field).

となっており、ご質問の段落が全部削除されています。

削除された理由を推測すると

  1. わかりにくい記述だった
  2. 重要ではない記述だった

のどちらか、あるいは両方であると考えられます。
従って、この部分にこだわるのは時間の無駄ではないでしょうか。

お役に立てることを祈りつつ。

id:weed_7777

なるほど・・・こんなアプローチがあるんですね。勉強になりました。

2012/05/18 07:40:39

その他の回答(1件)

id:meefla No.1

meefla回答回数984ベストアンサー獲得回数4602012/05/16 21:52:17ここでベストアンサー

ポイント50pt

まず、期待されている回答(わかりやすい解説)ではない事をお断りしておきます。
ご満足いただけなければ、ポイントは不要です。

この手のドキュメントで日本語がわかりにくい場合、英語の翻訳が適切でない事があるので、英語版を探してみました。
Your First iOS App の翻訳と思われますが、英語版の方は Xcode 4.3 対応のために、2012年2月16日付けで改訂されています。
(日本語版の最終更新は、2011年10月12日)

このページの右上にある "PDF" のリンク
http://developer.apple.com/library/ios/documentation/iphone/conceptual/iPhone101/iPhone101.pdf
でダウンロードできる PDF 版で比較しますと、該当の部分は38ページの真ん中あたりで、

  • You created a connection between the button and the view controller.

Next, you create connections between the view controller and the two remaining UI elements (that is, the label and the text field).

となっており、ご質問の段落が全部削除されています。

削除された理由を推測すると

  1. わかりにくい記述だった
  2. 重要ではない記述だった

のどちらか、あるいは両方であると考えられます。
従って、この部分にこだわるのは時間の無駄ではないでしょうか。

お役に立てることを祈りつつ。

id:weed_7777

なるほど・・・こんなアプローチがあるんですね。勉強になりました。

2012/05/18 07:40:39
id:a-kuma3 No.2

a-kuma3回答回数4557ベストアンサー獲得回数19032012/05/21 13:44:31

ポイント50pt

接続を確立することは、ターゲットとしてView Controller、アクションとしてchangeGreeting:セレクタ、コントロールイベントとしてUIControlEventTouchUpInsideを指定して、ボタンのaddTarget:action:forControlEvents:を起動することと同等です。

Xcode の画面での操作は、HelloWorldViewController クラスの viewDidLoad メソッドなどに、
以下のようなコードを追加したことになるんだと思います。

- (void)viewDidLoad {
    [super viewDidLoad];

    UIButton* button = ...
    [button addTarget:self action:@selector(changeGreeting:)
            forControlEvents:UIControlEventTouchUpInside];

}

※HelloWorldViewController のメソッドなので、self は View Controller を指す

元々、Xcode を知らなくて、ソースコードを書いてアプリを作ってる人には、
「ああ、なるほど」って感じで、Xcode が隠していることを理解する助けになるしょうけど、
初めて Xcode を使ってアプリを作る人には、どんなコードに相当するかなんて、
知らなくて良いことなので、改版の際に削除されたんじゃないでしょうか。

もしかすると、他の言語では「イベントハンドラを定義する」とかいう表現をするところで
Connection という、割りと一般的な単語を使ってしまったので、「create conection って書いたのはね...」
と、説明を入れておいた方が良いだろうか、と思ったのかもしれません。

id:weed_7777

すいません、ようやく何のことかおぼろげにわかりました。アドバイス有難うございます。

2012/06/08 05:59:19

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません