【问题标题】:how to avoid cell selected error in iphone如何避免iphone中的单元格选择错误
【发布时间】:2012-07-11 05:48:24
【问题描述】:

嗨,朋友,我的应用程序在单击单元格时崩溃,因为我在这一行 rowToSelect=indexPath;. 但我需要这一行,当我单击 section1 ==row==0 时,我必须传递在 cellbackground 图像上选择的图像的所有行我得到这个错误

'-[__NSArrayM row]: 无法识别的选择器发送到实例 0x4c7080' * 第一次抛出调用栈:(0x37e378bf 0x379831e5 0x37e3aacb 0x37e39945 0x37d94680 0x319921e9 0x319921af 0x5b47 0x3193f9cb 0x3193eaa9 0x3193e233 0x318e2d29 0x37d9622b 0x37430381 0x3742ff99 0x3743411b 0x37433e57 0x3742bd85 0x37e0bb4b 0x37e09d87 0x37e0a0e1 0x37d8d4dd 0x37d8d3a5 0x37b64fcd 0x3190d743 0x2927 0x28dc) 终止 调用抛出异常程序收到信号:“SIGABRT”。数据 格式化程序暂时不可用,将在“继续”后重试。 (找不到dlopen函数,所以无法加载shared 图书馆。)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


    rowToSelect=indexPath;//when i remove this line then my application is not crashing but when i keep

     this line the i click section1 and row0 then application is crash why this happen where i am wong please help me



        UIViewController <SubstitutableDetailViewController> *detailViewController = nil;

        if ([indexPath row] == 0 && [indexPath section] == 0) {
            TodoDetailViewController *newDetailViewController = [[TodoDetailViewController alloc] initWithNibName:@"TodoDetailViewController" bundle:nil];
            detailViewController = newDetailViewController;


        }

        if ([indexPath row] == 0 && [indexPath section] == 1){
            PeopleViewController *newDetailViewController = [[PeopleViewController alloc] initWithNibName:@"PeopleViewController" bundle:nil];

            detailViewController = newDetailViewController;

        }

         if ([indexPath row] == 1 && [indexPath section] == 1){
            DocumentsViewController *newDetailViewController = [[DocumentsViewController alloc] initWithNibName:@"DocumentsViewController" bundle:nil];
            detailViewController = newDetailViewController;
        }

         if ([indexPath row] == 2 && [indexPath section] == 1){
            PlannerViewController *newDetailViewController = [[PlannerViewController alloc] initWithNibName:@"PlannerViewController" bundle:nil];
            detailViewController = newDetailViewController;
        }



         if ([indexPath row] == 0 && [indexPath section] == 2){
            ArchivedPeopleViewController *newDetailViewController = [[ArchivedPeopleViewController alloc] initWithNibName:@"ArchivedPeopleViewController" bundle:nil];
            detailViewController = newDetailViewController;
        }




        // Update the split view controller's view controllers array.
       NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil];
        splitViewController.viewControllers = viewControllers;


        if (popoverController !=nil) 
        {
            [popoverController dismissPopoverAnimated:YES];
        }
       .
        if (rootPopoverButtonItem != nil) {
            [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem];
        }
        [detailViewController release];

    }

【问题讨论】:

  • rowToSelect 字段是什么类型的?

标签: iphone objective-c


【解决方案1】:

把它变成

rowToSelect=indexPath.row;

【讨论】:

  • 并且还要确保 rowToSelect 的类型是 NSInteger。 :)
猜你喜欢
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 2015-11-25
相关资源
最近更新 更多