我有一个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];
}
它显示在consol“0”上!
我真的不明白为什么!
也许有人可以帮我解决这个问题?
答案 0 :(得分:0)
问题可能是在numberOfSectionsInTableView:
被调用之前调用了requestFinished:
。
我认为你必须重新加载tableview。
尝试在[self.tableView reloadData]
的末尾添加requestFinished:
或类似内容。