我有一个函数可以创建一些数组并用数据填充它们。我从viewDidLoad
执行此功能。
在我添加[self.tableview reloadData];
我设置了断点等,它甚至没有转到numberOfRowsInTableView
等。[self.tableview reloadData]
是否应该执行所有表格视图功能,以便它出现在iPhone屏幕上?
**更新**
首先调用该函数:
- (void)viewDidLoad
{
[super viewDidLoad];
ViewController *GetDeals = [[ViewController alloc] init];
[GetDeals TopDealsRecieve:[[NSUserDefaults standardUserDefaults] objectForKey:@"DeviceToken"]];
[self.tableview setDelegate:self];
[self.tableview setDataSource:self];
[self.tableview reloadData];
TopDealsRecieve函数得到如下数组:
NSLog(@"%@", responseObject);
allLogos = [[responseObject valueForKey:@"data"] valueForKey:@"logo"];
allcontent = [[responseObject valueForKey:@"data"] valueForKey:@"content"];
allpostode = [[responseObject valueForKey:@"data"] valueForKey:@"postcode"];
NSLog(@"%lu", (unsigned long)allcontent.count);
allname = [[responseObject valueForKey:@"data"] valueForKey:@"name"];
alladdress = [[responseObject valueForKey:@"data"] valueForKey:@"address"];
alladdress2 = [[responseObject valueForKey:@"data"] valueForKey:@"address2"];
alllat = [[responseObject valueForKey:@"data"] valueForKey:@"lat"];
alllong = [[responseObject valueForKey:@"data"] valueForKey:@"lng"];
// refresh the table view
[self.tableview setDelegate:self];
[self.tableview setDataSource:self];
[self.tableview reloadData];
并在:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"wnks %lu",(unsigned long)allcontent.count);
return allcontent.count;
}
所有变量在我的代码中都可用,它们的分配方式如下:
// global var
NSArray *alllocationsID;
NSArray *alllocationsCity;
NSArray *allLogos;
NSArray *allcontent;
NSArray *allpostode;
NSArray *allname;
NSArray *alladdress;
NSArray *alladdress2;
NSArray *alllat;
NSArray *alllong;
在ViewController的顶部。 当GetArray函数不是函数并且它只是放在ViewDidLoad中时,这确实有效。
答案 0 :(得分:1)
您应该在方法viewDidload
之前添加这两行,然后才能执行此类[self.tableview reloadData];
[self.tableview setDelegate:self];
[self.tableview setDataSource:self];
[self.tableview reloadData];