做的是一个UITableView单选的简单Demo,但是在行选择的时候出现了EXC_BAD_ACCESS错误
先上代码:
UITableViewSingleChoiceViewController.h
@interface UITableViewSingleChoiceViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>@property(nonatomic,retain)NSIndexPath *oldIndex;@end
UITableViewSingleChoiceViewController.m
#import "UITableViewSingleChoiceViewController.h"#import "Cell.h" //自定义的一个UITableViewCell@interface UITableViewSingleChoiceViewController ()@end@implementation UITableViewSingleChoiceViewController{ UITableView *table; }@synthesize oldIndex; -(void)viewDidLoad { [super viewDidLoad]; table=[[UITableView alloc]initWithFrame:self.view.bounds]; table.delegate=self; table.dataSource=self; [self.view addSubview:table]; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 10; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSArray *nib=[[NSBundle mainBundle]loadNibNamed:@"Cell" owner:self options:nil]; Cell *cell=[nib objectAtIndex:0]; if(indexPath.row==2){ cell.thumbnail.image=[UIImage imageNamed:@"帐号切换"]; oldIndex=indexPath; }else{ cell.thumbnail.image=[UIImage imageNamed:@"帐号切换2"]; } cell.label.text=[NSString stringWithFormat:@"tableview cell - %d",indexPath.row+1]; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { if([indexPath isEqual:oldIndex]){ NSLog(@"行选择没有变"); }else{ Cell *newCell = (Cell *)[tableView cellForRowAtIndexPath:indexPath]; newCell.thumbnail.image=[UIImage imageNamed:@"帐号切换"]; Cell *oldCell = (Cell *)[tableView cellForRowAtIndexPath:oldIndex]; oldCell.thumbnail.image=[UIImage imageNamed:@"帐号切换2"]; oldIndex=indexPath; } }@end
在 tableView didSelectRowAtIndexPath方法中的第一行就出现了EXC_BAD_ACCESS错误信息
函数式编程
子衿沉夜
相关分类