0

同じインデックスに挿入NSMutableArray(self.tablePdfListArray)tableview textlabelています。最初は正しく追加されましたが、もう一度開くと、 になりつつあります。NSMutableArray(self.dateListArray)detailtextlabelTableViewdetailTextlabeltextlabeltextlabeldetailTextlabel

私はNSLog両方を持っておりNSMutabelArray、両方の配列値がスワップされていることがわかりました。元の値を保持する方法は? ご提案いただきありがとうございます。 tableViewコードで編集

 - (void)viewDidLoad
 {
 if([[NSUserDefaults standardUserDefaults] objectForKey:@"children"] != nil )
{
    self.tablePdfListArray = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"children"]];

}
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"dates"] != nil)
{
    self.dateListArray = [NSMutableArray arrayWithArray:[[NSUserDefaults standardUserDefaults] objectForKey:@"dates"]];

}
}
  -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0)
{
  self.myPDFName = [NSString stringWithFormat:@"%@", [alertView textFieldAtIndex:0].text];

    firstDayInYear = [NSDate date];
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];
    [dateFormatter setDateStyle:NSDateFormatterMediumStyle];
    NSString *currentTime = [dateFormatter stringFromDate:firstDayInYear];
    NSLog(@"User's current time in their preference format:%@",currentTime);

    if(!self. tablePdfListArray)
    {

        self.tablePdfListArray = [[NSMutableArray alloc]init];
    }
    if(!self.dateListArray)
    {
        self.dateListArray = [[NSMutableArray alloc]init];
    }
    [self.dateListArray insertObject:currentTime atIndex:0];

    NSLog(@"mhy date dateListArray %@",dateListArray);

     //the below if condition will not allow repeatative string array in tableList and textfield lenth.
           if ([[alertView textFieldAtIndex:0].text length] != 0 && ![self.tablePdfListArray containsObject:self.myPDFName])
    {

        [self.tablePdfListArray insertObject:[NSString stringWithFormat:@"%@", [alertView textFieldAtIndex:0].text] atIndex:0];

                   NSLog(@"mhy date tablePdfListArray %@",tablePdfListArray);
        NSIndexPath * indexPath = [NSIndexPath indexPathForRow:0 inSection:0];

        [self.pdfListnameTable insertRowsAtIndexPaths:@[indexPath]withRowAnimation:UITableViewRowAnimationAutomatic];

        NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
        [defaults setObject:self.dateListArray forKey:[NSString stringWithFormat:@"children"]];
        [defaults setObject:self.tablePdfListArray forKey:[NSString stringWithFormat:@"dates"]];
        [defaults synchronize];

    }
  }}

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

if( tableView == pdfListnameTable)
{

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


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

        cell.selectionStyle = UITableViewCellSelectionStyleNone;           //cell bg
        //self.myChklist.backgroundColor = [UIColor clearColor];

    }

    NSString *tablePdfname = [self.tablePdfListArray objectAtIndex:indexPath.row];
    cell.textLabel.text = tablePdfname;

    NSString *tablePdfdate = [self.dateListArray objectAtIndex:indexPath.row];
            //[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];



       cell.detailTextLabel.text = tablePdfdate;

    return cell;

 }
 }
4

2 に答える 2

1

なぜあなたはチェックしていますtableView == pdfListnameTableか?

それはする必要がありますtableView isEqual:self. pdfListnameTable。ここで関連性があるかどうかはわかりませんが、複数の tableView がある場合は、else ステートメントが不足しているように見えるため、それに切り替えていないと思います。

于 2013-06-20T07:16:22.543 に答える