2013年2月23日土曜日

h_Mission1

現在プログラマーのHさんにiOS開発を教えていただいていまして、課題をだしていただいています。
その課題の復習も兼ねてブログにまとめようと、と、と


課題1:UITableViewで1〜100までをリスト表示する画面を作ってください。ただし、素数の場合は文字色を赤とすること。通常は黒。



プロジェクト名:h_Mission1



StoryBoardにはTableViewを貼っただけ。































ViewController.h



説明
コメントの通り。


ViewController.m


説明
viewDidLoad内では1〜100の数字の配列を用意する。
ViewController.hで宣言したarrayのcapacityを100用意する。100個数字入れるから。
for文で100回数字を足す式をループさせる。

[array addObject:[NSNumber numberWithInteger:i]];

ではint iで用意した数字をarrayに入れる。
intはプリミティブ型という単純な数字しか扱えないもので、NSArrayはオブジェクト型しか扱えないのでint iをオブジェクト型のNSNumberに変換してから入れてやる。



TableViewに表示できる行の数は端末の画面の関係上限られてくる。
なので計算して用意した値には待機していてもらわなきゃいけない。
そこで用意するのがこれ。

cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

これは画面をスクロールしていった時に画面にデータを表示してくれる一文。
キュー=先に入力したデータが先に出力されるという特徴をもつ、データ構造体の一種。
とのこと。


コメントアウトしてある文に

cell.textLabel.text = [array objectAtIndex:indexPath.row];

があるけれど、これだとうまくarrayが入力されない。
というのも、textで出力するには数字では駄目で、Stringにしてやらないといけないから。

cell.textLabel.text = [NSString stringWithFormat:@"%d", ((NSNumber*)[array objectAtIndex:indexPath.row]).integerValue];

だとうまくいく。
[NSString stringWithFormat: でNSNumberをNSString型に変換して入力する。
ポインタとは、他の変数やメモリ領域のアドレスを示す変数のことで、間接的にデータにアクセスするもの。
integerValueは整数値を返り値にしているということ。

cell.textLabel.textColor = [UIColor redColor];
これは色を赤色に変えているだけ。



結果






























うまくいきましたー。
でも素数がまだできていません。
次の木曜までに素数の部分は仕上げます。



始めたばかりで説明の仕方とか、プログラミングの用語の使い方とか、つたないところが多々ありますが、ツッコミいただければありがたいです!




0 件のコメント:

コメントを投稿