学习表视图(Table View)的应用时,自己写了个demo,最后表格出来了,可是滑动时报错了,报错如下:
这是我ViewController.m部分的代码:
代码语言:javascript复制 1 #import "ViewController.h"
2
3 @interface ViewController ()
4
5 @end
6
7 @implementation ViewController
8 {
9 NSArray *tableData;
10 }
11
12 - (void)viewDidLoad
13 {
14 [super viewDidLoad];
15 // Do any additional setup after loading the view, typically from a nib.
16 tableData = [NSArray arrayWithObjects:@"Egg Benedict" , @"Mushroom Risotto" , @"Full Breakfast" , @"Hamburger" ,@"Ham and Egg Sandwich" , @"Creme brelee" , @"white chocolate donut" , @"starbucks coffee" , @"vegetable curry" , @"instant noodle with egg" , @"noodle with bbq pork" , @"japanese noodle" , @"green tea" , @"thai shrimp cake" , @"angry birds cake" , @"ham and cheese panini" , nil];
17 //[tableData retain];
18
19 }
20
21 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
22 {
23 return [tableData count];
24
25 }
26
27 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
28 {
29 static NSString *simpleTableIdentifier = @"SimpleTableItem";
30
31 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
32
33 if (cell == nil) {
34 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
35 }
36
37 //[[cell textLabel] setText:[tableData objectAtIndex:[indexPath row]]];
38 cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
39 cell.imageView.image = [UIImage imageNamed:@"icon.png"];
40
41
42 return cell;
43
44 }
45
46 - (void)didReceiveMemoryWarning
47 {
48 [super didReceiveMemoryWarning];
49 // Dispose of any resources that can be recreated.
50 }
51
52 @end
经过反复的测试后,解决办法如下:
在第17行加上:
代码语言:javascript复制[tableData retain];
这样就可以解决报错问题了。