Показать данные в tableView из NSDictionary в NSMutableArray - PullRequest
0 голосов
/ 25 июля 2011

Я пытаюсь сохранить записи в UITableView каждой ячейке при перезагрузке данных из формы.Для этого, когда пользователь нажимает кнопку «Добавить», чтобы несколько меток были добавлены в 1-й indexPath, затем при повторном нажатии кнопки «Добавить» несколько ячеек должны быть добавлены во вторую ячейку, сохраняя в первую очередь.

Я хочу сохранить свои данные в

MyArray ({
  firstindex: 1st record
  firstindex: 2nd record
}
{
  secondindex : 1st record
  secondindex : 2nd record
})

Записи поступают из UITextView и сохраняются в таблице при каждом нажатии кнопки Добавить. Нажмите на каждую строку с несколькими записями

- (IBAction) Add
{
      [myDict setObject:countryTxt.text forKey:@"Country"];
        [myDict setObject:cityTxt.text forKey:@"City"];
        [myDict setObject:EscortsNumTxt1.text forKey:@"people"];
        [myDict setObject:fromDate.text forKey:@"Datetogo"];
        [myDict setObject:toDate.text forKey:@"Datetoreach"];

        [moreArr addObject:myDict];

        NSLog(@"moreDict %@",moreArr);

        numberOfrows++;

        [moreTable reloadData];
}

Я реализовал таким образом, но показываю повторяющиеся данные в ячейке TableView, я не включаю кадр кода UILabel, а только сталкиваюсь с проблемой в fetchng

- (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]; 
}

countrylbl.text = [[moreArr objectAtIndex:indexPath.row] objectForKey:@"Country"];
        citylbl.text = [[moreArr objectAtIndex:indexPath.row] objectForKey:@"City"];
        people.text = [[moreArr objectAtIndex:indexPath.row] objectForKey:@"people"];
        toDateLbl.text = [[moreArr objectAtIndex:indexPath.row] objectForKey:@"Datetogo"];
        fromDteLbl.text = [[moreArr objectAtIndex:indexPath.row] objectForKey:@"Datetoreach"];
}

Ответы [ 2 ]

0 голосов
/ 25 июля 2011

Решение, поскольку NSMutableDictionary переопределяет содержимое, я не знаю почему, поэтому я выделил его в функции

    moreTableDict = [[NSMutableDictionary alloc] init];

    [myDict setObject:countryTxt.text forKey:@"Country"];
    [myDict setObject:cityTxt.text forKey:@"City"];
    [myDict setObject:EscortsNumTxt1.text forKey:@"people"];
    [myDict setObject:fromDate.text forKey:@"Datetogo"];
    [myDict setObject:toDate.text forKey:@"Datetoreach"];

    [moreArr addObject:myDict];

Это работает для меня

0 голосов
/ 25 июля 2011

Попробуйте получить массив один раз, как в ваших методах

- (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]; 
    }


    NSArray *results = [[NSArray alloc] initWithArray:[moreArr objectAtIndex:indexPath.row]];

    NSLog("%@",results); //Check that everything is in the right place

    // DO STUFF

    [results release];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...