Home > Object-C Archive

Object-C Archive

iPhoneアプリ UITableViewを試す。

「Macを買うなら…」でおなじみの、秋葉館オンラインショップ
もちろん話題のiPodも本体を含め関連商品充実!
UITableView

色々と大変そうなので、避けていたのですが、

UITableViewの基礎を試してみました。
こちらをベースに色々カスタマイズしてみようと思います。

iPhone Dev Center: UITableViewDataSource Protocol Referenceより

@implementation RootViewController

- (void)viewDidLoad {
    [super viewDidLoad];
	self.title =@"UITableView 聖域十二宮編";

	//Tableに表示する要素
	items_ = [[NSArray alloc] initWithObjects:
			 @"1月 山羊座 - Capricornus", @"2月 水瓶座 - Aquarius",@"3月 魚座 - Pisces",
			 @"4月 牡羊座 - Aries", @"5月 牡牛座 - Taurus", @"6月 双子座 - Gemini",
			 @"7月 蟹座 - Cancer", @"8月 獅子座 - Leo", @"9月 乙女座 - Virgo",
			 @"10月 天秤座 - Libra", @"11月 蠍座 - Scorpio", @"12月 射手座 - Sagittarius",
			 nil];
}
<pre>//Viewのリリースに、要素の配列をリリース</pre>
- (void)viewDidUnload {
 [items_ release];
}

// テーブルが持っているセルの数を返す
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
 return [items_ count];
}

// UiTableViewCellのインスタンスを返す
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

 static NSString *CellIdentifier = @"Cell";

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
 if (cell == nil) {
 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
 }

 // Configure the cell.

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

 return cell;
}

TableView02

セルの選択時にアクションを発生させるには、didSelectedRowAtIndexPathメソッドをオーバライドします。

// セルの選択をハンドリングしてアクションを発生させる
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

	NSString* message = [items_ objectAtIndex:indexPath.row];
	UIAlertView* alert = [[[UIAlertView alloc] init] autorelease];
	alert.message = message;
	[alert addButtonWithTitle:@"OK"];
	[alert show];
}

iPhone OS のバージョン

iPhone これは使える!アプリ&ツールガイド OS3.0&3GS (SOFTBANK MOOK)

新しいSDKでアプリ開発すると、意外とダウンロードできない人がいるので、iPhone OSのおさらいをしてみました。

iPhone OS バージョン

バージョン 2.1 2008年9月12日配布開始
バージョン 2.2 2008年11月21日配布開始
バージョン 2.2.1 2009年1月27日配布開始
バージョン 3.0 2009年9月9日配布開始。 iPhoneからのアップデートは無料。
iPod Touchからのアップデートは1200円の有料
バージョン 3.1 2009年9月9日配布開始。 iPhoneからのアップデートは無料。
iPod Touchからのアップデートは600円に値下げ
バージョン 3.1.2 2009年10月9日配布開始 同上
バージョン 3.1.3 2010年2月3日配布開始 同上
バージョン 3.1.3 Beta(2010/02/05現在) iPad対応

iPhone OS

Mac OS X v10.5開発プロジェクトから派生して開発された、iPhoneおよびiPod Touch の専用OS

SDK

  • Cocoa Touch
    マルチタッチ機能の制御、加速度センサ、View hierarchy、言語サポート、カメラ
  • メディアコンポーネント
    OpenAL、オーディオと録音、ビデオフォーマットおよびイメージフォーマットのサポート、Quartz、Core Animation、OpenGL ES
  • Core Services
    ネットワークサポート、アドレスブック、SQLite データベース、スレッド、Core Location
  • カーネル
    TCP/IP、ソケット、パワーマネージメント、ファイルシステム

Object-C 基礎の基礎 プロパティのメモ

秋葉館オンラインショップ

サンプルコードに、@がいっぱいあって、

「なんですかこれは、Mentionですか?」

と、困惑したときのメモです。

プロパティ・・・「クラスにアクセッサメソッドを簡単に付加する」

クラスが持つインスタンス変数に安全にアクセスさせるためのアクセッサメソッドを追加を、自動化してくれるのがプロパティ。

  • 利点:安全
  • 欠点:メソッドの呼び出しが発生するので、パフォーマンス的に不利。

1. プロパティの宣言

@interface MyClass : NSObject
{
    NSString *value;
}
@property(copy, readwrite) NSString *value;
@end

@property (属性) 型名 プロパティ名;

@implementation MyClass
@synthesize value;
@end

@synthesize指示子で、プロパティ名を指定すると、
アクセッサメソッドを自動的に合成。
インスタンス変数のnameのgetterとsetterを追加。

2. プロパティへのアクセス

MyClass *myInstance = [[MyClass alloc] init];
myInstance.value = @"New value";
NSLog(@"myInstance value: %@", myInstance.value);

ドット構文を使うと、構造体の要素にアクセスするときと同じパターンを使ってプロパティにアクセス。

myInstance.valueは、インスタンス変数に直接アクセスしているわけではなく、アクセサリメソッドを呼び出している。メソッドを記述する手間を省いてるというもの。

Home > Object-C Archive

カテゴリー
RSS あらびき林檎
スポンサー
書籍

Return to page top