使用tableView启动新视图时的EXC_BAD_ACCESS

时间:2013-04-15 14:31:45

标签: iphone ios objective-c uiviewcontroller tableview

我正在尝试使用tableView启动一个新的viewController但我不断收到EXC_BAD_ACCESS错误。

·H

#import <UIKit/UIKit.h>

    @interface GeneralInfoViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

    @end

的.m

@interface GeneralInfoViewController ()

@end

@implementation GeneralInfoViewController

{
    NSArray *tableData;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}




- (void)viewDidLoad
{
    self.title = @"Allmänna uppgifter";
    [super viewDidLoad];
    // Initialize table data
    tableData = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto", nil];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [tableData count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
    return cell;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [super dealloc];
}
- (void)viewDidUnload {
    [super viewDidUnload];
}
@end

我在return [tableData count];方法的numberOfRowsInSection行上获得了例外,但我认为该问题与我在viewDidLoad和{{{{}}}中启动viewController的方式有关1}}但我无法弄清楚它是什么。

我尝试将initWithNibNameviewDidLoad交换,但这只会产生不同的错误。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您已使用便捷方法初始化tableData(即没有allo / init / retain)。因此阵列将自动释放。

尝试使用

tableData=[[NSArray alloc] initWithObjects:...];