0

私は過去3時間からこのエラーを理解しようとしています。検索することで、このエラーがメモリ管理に関連していることがわかりましたが、自分が間違っていることを理解できませんでした。

私はこれらの4つのラベルを宣言しました:

@interface InteractiveHistory : UITableViewController {
UILabel *date;
UILabel *startTime;
UILabel *cal;
UILabel *duration;
}

次に、プロパティを作成して合成しました。viewDidLoadでは、次のようにすべてを初期化しました。

date = [[UILabel alloc] init];

また、dealloc()メソッドでそれらの割り当てを解除しました。

私がやりたいのは、これらの4つのラベルを使用して、テーブルのセルにテキストを書き込むことです。テキストはindexPathに依存します。

cellForRowAtIndexPathメソッドで、2つのラベルを表示し、エラー行を示しています。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

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

        NSLog(@"constructing cell");

        //set up labels text

        date = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Date"]];


 NSLog(@"%@",date.text); //App crashes at this line
       [date setTag:1];


        startTime = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Start Time"]]; 

        //setting tag and position of label
        [startTime setTag:2];
        CGRect labelpos =  startTime.frame;
        labelpos.origin.y = date.bounds.size.height + 2;
        startTime.frame = labelpos;

        NSLog(@"labels set");

   // Configure the cell...
    [[cell contentView] addSubview:date];
    [[cell contentView] addSubview:startTime];
    [[cell contentView] addSubview:duration];
    [[cell contentView] addSubview:cal];


    NSLog(@"A cell set");

    }      

    return cell;
}

誰かplzは私が間違っていることを教えてもらえますか?私の質問が明確であることを願っています。

4

1 に答える 1

9

この線:

date = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Date"]];

次のようにする必要があります。

date.text = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Date"]];

それ以外の場合、dateポインターはその内容を設定する代わりに、NSString のインスタンスに設定されます。

編集:

danh が正しく指摘しているように、同じ問題が発生しstartTimeます。

于 2012-06-24T21:54:37.003 に答える