UIKitの内容を指定する
今日はこんな文が出てきましたよ〜!
cell.textLabel.text = [recipes objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageNamed:@"cake.jpeg"];
中身は違えど、形式同じやね。
〜 . 〜 . 〜 = [〜 : 〜];
こんなです。
リンクによると、この文はデータの中身を決めるために必要なようです。
例えばセルの中身など。
(by http://d.hatena.ne.jp/kazukingband/20111202/1323437363)
ではこないだ紹介した初心者にもわかりやすい本を参考に調べてみましょう!
本によると、最初の【〜 . 】はUI部品(UI Kit)のことをさすようです。
変数名の後ろの【.】ピリオドはプロパティだそうだ。
でもピリオド2つあるねん。
どっちのこと?というか両方??
調べてみると判明しました。
(by http://supportdoc.net/support-iphone/table_basic6.html)
cell のプロパティであるtextLabel、さらにそのプロパティであるtext、ということです。それに文字列を指定することになります。ダブルでプロパティーなんですね。
また、cell.textLabel.textとかcell.imageView.imageはクラスのインスタンスらしい。
〜Lable.textならUIlabelというクラスのインスタンスのtextという属性のもの。
〜View.imageならUIviewというクラスのインスタンスのimageという属性のもの。
ふむふむ。
さらに【=[~:~];】の部分。
ここには何をセットするか書いていく。
細かい事はまだわからないけど、上の例では文字列の@"~"を使って「cake.jpegという名前の(つまりimageNamed)UIimage」をセットしているのがわかるよね。
ちなみに”recipes”というのは同じファイルの冒頭で定義したものです。
@implementation ViewController
{
NSArray *recipes;
}
こんなん。
さらに【indexPath】というのは引数です。
[recipes objectAtIndex:indexPath.row]; ですが、この行為は
「配列の要素を取り出す」ものという説明を見ました。
さっぱり意味わからん。
アインシュタインは6歳の子供に説明できなければ、本当にわかっているとは言えないと言っていました。
おそらくこの説明では6歳の子供はわからないでしょう…
「配列から、インデックスを指定して要素を取り出すには、objectAtIndexメソッドを用います。配列のインデックスがその引数です。」
[recipes objectAtIndex:インデックス]
この場合、インデックスとはindexPath.rowのことだそうです。つまり
recipes objectAtIndex:indexPath.row]となると。
うーんわかるけど、インデックスってなんだっけ?
インデックス…日本語では「索引」、「見出し」など。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
http://e-words.jp/w/E382A4E383B3E38387E38383E382AFE382B9.html
プログラミングでは、配列の要素を区別・指定するための通し番号をインデックス(添字)という。
データベースや検索エンジンでは、テーブルなどに格納されたデータをすばやく検索・抽出するための識別データ・索引データなどのことをインデックスという。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
うーん、つまりデータ検索するための付箋みたいなデータってことかな?
すっきりしないけど、まあ今はこのぐらいの知識で次ぎ行きます〜