【发布时间】:2013-10-02 13:15:02
【问题描述】:
我遇到了一个我找不到解决方案的问题,所以如果有人可以帮助我,我将不胜感激。我已经阅读了很多关于可能是什么问题的帖子,但我没有找到任何解决方案。 我有一个 .h
@interface FirstViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>{
UITableView *myTableView;
}
@property (strong, nonatomic) UITableView *myTableView;
@end
还有一个.m
@interface FirstViewController ()
@end
@implementation FirstViewController
@synthesize myTableView;
static NSString *CellIdentifier = @"CellIdentifier";
- (void)viewDidLoad
{
[super viewDidLoad];
myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 460) style:UITableViewStylePlain];
myTableView.dataSource = self;
myTableView.delegate = self;
[self.view addSubview:myTableView];
myTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
myTableView.rowHeight = 325;
myTableView.backgroundColor = [UIColor yellowColor];
[myTableView setDelegate:self];
[myTableView setDataSource:self];
[myTableView registerClass:[MTTableViewCell class] forCellReuseIdentifier:CellIdentifier];
[self separateByType];
}
-(void)separateByType
{
NSURL *url = [NSURL URLWithString:tempUrl];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSString *response = [request responseString];
SBJsonParser *jsonReader = [SBJsonParser new];
firstJsonData = [NSMutableDictionary dictionary];
firstJsonData = [jsonReader objectWithString:response error:nil];
NSLog(@"Calling reloadData on %@", self.myTableView);
[self.myTableView reloadData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[firstJsonData objectForKey:@"data"] count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MTTableViewCell *cell = (MTTableViewCell *)[myTableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[MTTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
[cell.titleTextlabel setText:[JSONDATA objectAtIndex:[indexPath row]]];
[cell.descriptionTextlabel setText:[JSONDATA objectAtIndex:[indexPath row]]];
return cell;
}
【问题讨论】:
-
numberOfRowsInSection: 返回 0 或 nil
-
你怎么知道它没有被调用?这是复制粘贴吗?你还没有在 cellForRow 中声明
CellIdentifier -
NSArray* jsonArray = [firstJsonData objectForKey:@"data"]; NSInteger numberOfRows = [jsonArray 计数]; NSLog(@"Count: %i", numberOfRows);返回 numberOfRows;
-
不调用 cellforrowatindexpath 的唯一原因通常有两个原因,numberofrows 返回 0 或 tableview 在 cellforrow 和 numberofrows 之间的时间范围内以某种方式被释放
-
在
numberOfRowsInSection中尝试记录tableView和myTableView的值,以验证它们是否相同。
标签: iphone ios xcode uitableview reloaddata