由于某种原因,加载此视图时出现上述错误。相同的代码可用于填充上一个视图中的tableView行,因此我不知道这可能出什么问题-这是完全相同的代码。当我过渡到该视图时,应用程序崩溃。它可以在正确崩溃之前设法对self.tableRows中的类别进行NSLog记录,因此在tableRows中存储似乎不是问题。它在计算行数的行上崩溃(返回self.tableRows.count)。我感觉到错误与无法访问tableRows有关,但是我对iOS还是很陌生。谢谢你的帮助!这是我即将上大学课程的一个项目,因此我们将不胜感激。

#import "DivisionsViewController.h"
#import "TeamsViewController.h"

@implementation DivisionsViewController

@synthesize tableRows = _tableRows;
@synthesize currentKey = _currentKey;

NSMutableArray* temp;

#pragma mark - Table view data source

- (void)viewDidLoad
{
    [super viewDidLoad];

    _currentKey = @"default";

    //temporary- trying to populate TableView from JSON

    int i = -1;
    self.tableRows = [NSMutableArray array];
    temp = [[NSMutableArray alloc] init];
    for(NSDictionary *dict in self.divisions){
        NSString *category = [dict objectForKey:@"category"];
        if (self.currentKey != category){
            [self.tableRows addObject:category];
            [temp addObject:[[NSMutableArray alloc] init]];
            self.currentKey = category;
            NSLog(@"table value %@", [self.tableRows lastObject]);
            i++;
        }
        [[temp objectAtIndex:i] addObject:dict];
    }
    for (NSString* category in self.tableRows){
        NSLog(@"category: %@", category);
    }
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    return self.tableRows.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"DivisionCell" forIndexPath:indexPath];
    cell.textLabel.text = [self.tableRows objectAtIndex:indexPath.row];
    return cell;
}

最佳答案

您是否尝试过NSLog您的表行计数?
尝试在返回numberOfRows之前先对其进行NSlog记录。

self.tableRows.count


您也可以尝试设置异常断点。
在xcode中,选择“断点导航器”-它是选项卡中右侧第二个选项卡。
(这些标签是您可以在最左侧的标签中看到项目的位置)
在该选项卡中时,可以按左下方的+->添加异常断点。然后它在崩溃前就断裂了-很有用!

10-05 20:26