0

我有一个 UTableView 分组。我想将我的数据分成“类别”组。我有一个实例变量,其中包含我数据库中的所有组。

@interface TableViewController : UITableViewController {

    // Response from server
    NSString* serverResponse;
    NSMutableArray *categories;     // This NSMutableArray contains all category's server    
}

@property (strong) NSString *serverResponse;
@property (strong) NSMutableArray *categories;

我用 requestFinished 方法填充我的 NSMutableArray (一切都很好)

- (void)requestFinished:(ASIHTTPRequest *)request
{  
    NSString *result = request.responseString;

    NSArray *jsonArray = (NSArray*)[result JSONValue];

    int count = [jsonArray count]; 
    int i;
    NSDictionary *jsonDict = [[NSDictionary alloc] init];

    for (i = 0; i < count; i++) {
        jsonDict = [jsonArray objectAtIndex:i];
        NSString *current = [jsonDict objectForKey:@"categoriy"];

        [categories addObject:current];
        NSLog(@"%d", [categories count]) // Shows 4 -> ok !
    }
}

但是当我用这种方法调用它时:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    NSLog(@"%d", [categories count])   // Show 0 -> bad !
    return [categories count];
}

它显示在控制台“0”上!

我真的不明白为什么!

也许有人可以帮我解决这个问题?

4

1 回答 1

0

问题可能是numberOfSectionsInTableView:在调用之前requestFinished:调用。

我认为您必须重新加载表格视图。

尝试将[self.tableView reloadData]或类似的东西放在requestFinished:.

于 2012-04-30T17:22:44.020 回答