ページ 11

【objective-c】テキストファイルの内容をtableViewで表示したい

Posted: 2010年12月27日(月) 11:29
by りょち
はじめまして、objective-cを学習しておりますりょちと申します。
まだまだ学習している最中でしていろいろ検索していたところこちらにたどり着いた次第でございます。

tableViewで実現したい物がうまくいかず悩んでおります、どうかお力添えをお願い申し上げます。

とあるテキストファイルから1行ずつ読み込み、tableViewに表示させようとしております。
テキストファイルを読み込み、tableViewに表示させることは成功しましたが
スクロールをさせるとアプリがクラッシュしてしまいます。
テキストの内容は
111
222
333
444
.
.
と大体300行ぐらい有ります。行数を減らしても変わりませんでした。
cellForRowAtIndexPathのスクロール処理の部分に問題があるとは思うのですがどのように解決したら良いか
教えていただきたいです。

以下ソースです。

コード:

-(void)viewDidLoad
{
	NSString *paths = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"];
	NSString *lotData = [[NSString alloc] initWithContentsOfFile:paths];
	NSArray *array = [lotData componentsSeparatedByString:@"\n"];
	NSLog(@"%@",array);
	self.listData = array;
	[array release];
	[super viewDidLoad];
}

-(NSInteger)tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
	return [self.listData count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
	static NSString *cellData = @"Cell";
	UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellData];
	if (cell == nil){
		cell =[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellData] autorelease];
	}
	NSUInteger row = [indexPath row];
	cell.textLabel.text = [listData objectAtIndex:row];
	return cell;
}
大変お手数ですが、よろしくお願い致します。

Re: 【objective-c】テキストファイルの内容をtableViewで表示したい

Posted: 2010年12月28日(火) 03:06
by Justy
 arrayは autoreleaseだから releaseしなくていいんじゃないですか?
 ちなみに listDataの内部で retainしていますか?

Re: 【objective-c】テキストファイルの内容をtableViewで表示したい

Posted: 2011年1月05日(水) 10:50
by りょち
明けましておめでとうございます。
しばらくPCから離れていたもので、返答遅くなりまして申し訳ございません。
Justy さんが書きました: arrayは autoreleaseだから releaseしなくていいんじゃないですか?
ちなみに listDataの内部で retainしていますか?
arrayのreleaseを外したら正常に動くようになりました。
いろんなサンプルコードをみると大抵releaseが入っているので、必要かと思っておりました。
解決できました!本当にありがとうございます。