さてさて、タイトル通りテーブルのデータを管理するクラスを作ってみようかと思う。
前回は下の4つのファイルを作りました。
PersonalData.h
PersonalData.m
PersonalDataManager.h
PersonalDataManager.m
PersonalDataたちは個人情報データを表現するクラス。
要素として「名前」を実装しました。
今日はPersonalDataManagerたちを実装しましょ。
まずは、PersonalDataManager.hから・・・
青枠の部分が追加した部分です。

つぎは、PersonalDataManager.mです。
もともとのソースはこれだけ↓

これらのメソッドやなんやらを追加します。
が、今回は今までの様にソースコードの画像はアップしません。
なんでかというと、でかいからw
まず、
#import "PersonalDataManager.h"
の下にこれを書きます。
これは個人情報データの生成を行うプライベートメソッドの宣言。
@interface PersonalDataManager (PrivateMethods)
- (NSMutableArray *)generatePersonalData;
@end
次に大量コードですが、、
@implementation PersonalDataManager
と、最後の@endの間に書きます。
緑色のコメントが簡単な説明ですー。
static PersonalDataManager *sharedInstance; //自身のオブジェクトを保持するためのクラス変数の宣言
+ (PersonalDataManager *)sharedPersonalDataManager { //オブジェクトの取得を提供するメソッド
if (sharedInstance == nil) {
sharedInstance = [[PersonalDataManager alloc] init];
}
return sharedInstance;
}
- (id)init { //initメソッドのオーバーライド
if ((self = [super init]) == nil) {
return nil;
}
personalDataList = [self generatePersonalData];
return self;
}
- (void)dealloc { //deallocメソッドのオーバーライド
[personalDataList release];
[super dealloc];
}
- (PersonalData *)loadPersonalDataAtIndex:(NSUInteger)index { //指定した1件のデータオブジェクト取得するメソッド
if (index >= 0 && index < [personalDataList count]) {
return [personalDataList objectAtIndex:index];
}
return nil;
}
- (NSUInteger)countOfPersonalData { //データオブジェクトの個数を取得するメソッド
return [personalDataList count];
}
- (NSMutableArray *)generatePersonalData { //個人情報データの生成を行うプライベートメソッド
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
@try {
// names
NSArray *names = [NSArray arrayWithObjects:
@"愛 飢え夫",
@"下記 句け子"",
@"指し 周世僧"",
@"達 津手斗"",
@"何 抜寝乃"",
@"葉比 負へ帆"",
@"真美 無眼藻"",
@"揶 由余"",
@"等裏 流列路"",
@"輪 ヲん"",
nil];
NSMutableArray *tempDataList
= [[NSMutableArray alloc] initWithCapacity:[names count]];
for (int i = 0; i < [names count]; i++) {
PersonalData *personalData = [[[PersonalData alloc] init] autorelease];
personalData.name = [names objectAtIndex:i];
[tempDataList addObject:personalData];
}
return tempDataList;
}
@finally {
[pool release];
}
return nil;
}
な、長い。
とりあえず、実行してエラーがない事を確認!
画面にテーブル表示させるまであとすこしー!!!

にほんブログ村
> 次のテーマ テーブルをつくっていこう。
> テーブルのデータを管理するクラスを作ってみる(★この記事★)
> テーブルビューのコントローラーを作ってみる。
> ついにテーブルの表示完成!
> テーブルをいじくる。
> テーブルを本当にいじくる
> テーブルを本当に実装を始めるよ。
> テーブルを改造しましょ。
> テーブル改造のつづきやけど。。
> テーブルのセルに電話番号を追加してみる。
> モード切り替え用ボタンの追加
> セル(データ)の削除処理と並び替え!
> テーブルいじくりも大詰め?
前回は下の4つのファイルを作りました。
PersonalData.h
PersonalData.m
PersonalDataManager.h
PersonalDataManager.m
PersonalDataたちは個人情報データを表現するクラス。
要素として「名前」を実装しました。
今日はPersonalDataManagerたちを実装しましょ。
まずは、PersonalDataManager.hから・・・
青枠の部分が追加した部分です。

#import < Foundation/Foundation.h>
#import "PersonalData.h"
@interface PersonalDataManager : NSObject {
NSMutableArray *personalDataList;
}
+ (PersonalDataManager *)sharedPersonalDataManager;
- (PersonalData *)loadPersonalDataAtIndex:(NSUInteger)index;
- (NSUInteger)countOfPersonalData;
@end
#import "PersonalData.h"
@interface PersonalDataManager : NSObject {
NSMutableArray *personalDataList;
}
+ (PersonalDataManager *)sharedPersonalDataManager;
- (PersonalData *)loadPersonalDataAtIndex:(NSUInteger)index;
- (NSUInteger)countOfPersonalData;
@end
つぎは、PersonalDataManager.mです。
もともとのソースはこれだけ↓

これらのメソッドやなんやらを追加します。
が、今回は今までの様にソースコードの画像はアップしません。
なんでかというと、でかいからw
まず、
#import "PersonalDataManager.h"
の下にこれを書きます。
これは個人情報データの生成を行うプライベートメソッドの宣言。
@interface PersonalDataManager (PrivateMethods)
- (NSMutableArray *)generatePersonalData;
@end
次に大量コードですが、、
@implementation PersonalDataManager
と、最後の@endの間に書きます。
緑色のコメントが簡単な説明ですー。
static PersonalDataManager *sharedInstance; //自身のオブジェクトを保持するためのクラス変数の宣言
+ (PersonalDataManager *)sharedPersonalDataManager { //オブジェクトの取得を提供するメソッド
if (sharedInstance == nil) {
sharedInstance = [[PersonalDataManager alloc] init];
}
return sharedInstance;
}
- (id)init { //initメソッドのオーバーライド
if ((self = [super init]) == nil) {
return nil;
}
personalDataList = [self generatePersonalData];
return self;
}
- (void)dealloc { //deallocメソッドのオーバーライド
[personalDataList release];
[super dealloc];
}
- (PersonalData *)loadPersonalDataAtIndex:(NSUInteger)index { //指定した1件のデータオブジェクト取得するメソッド
if (index >= 0 && index < [personalDataList count]) {
return [personalDataList objectAtIndex:index];
}
return nil;
}
- (NSUInteger)countOfPersonalData { //データオブジェクトの個数を取得するメソッド
return [personalDataList count];
}
- (NSMutableArray *)generatePersonalData { //個人情報データの生成を行うプライベートメソッド
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
@try {
// names
NSArray *names = [NSArray arrayWithObjects:
@"愛 飢え夫",
@"下記 句け子"",
@"指し 周世僧"",
@"達 津手斗"",
@"何 抜寝乃"",
@"葉比 負へ帆"",
@"真美 無眼藻"",
@"揶 由余"",
@"等裏 流列路"",
@"輪 ヲん"",
nil];
NSMutableArray *tempDataList
= [[NSMutableArray alloc] initWithCapacity:[names count]];
for (int i = 0; i < [names count]; i++) {
PersonalData *personalData = [[[PersonalData alloc] init] autorelease];
personalData.name = [names objectAtIndex:i];
[tempDataList addObject:personalData];
}
return tempDataList;
}
@finally {
[pool release];
}
return nil;
}
な、長い。
とりあえず、実行してエラーがない事を確認!
画面にテーブル表示させるまであとすこしー!!!
にほんブログ村
> 次のテーマ テーブルをつくっていこう。
> テーブルのデータを管理するクラスを作ってみる(★この記事★)
> テーブルビューのコントローラーを作ってみる。
> ついにテーブルの表示完成!
> テーブルをいじくる。
> テーブルを本当にいじくる
> テーブルを本当に実装を始めるよ。
> テーブルを改造しましょ。
> テーブル改造のつづきやけど。。
> テーブルのセルに電話番号を追加してみる。
> モード切り替え用ボタンの追加
> セル(データ)の削除処理と並び替え!
> テーブルいじくりも大詰め?