TableView重装数据麻烦

时间:2014-03-10 14:28:29

标签: ios uitableview

我有一个函数可以创建一些数组并用数据填充它们。我从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中时,这确实有效。

1 个答案:

答案 0 :(得分:1)

您应该在方法viewDidload之前添加这两行,然后才能执行此类[self.tableview reloadData];

[self.tableview setDelegate:self];
[self.tableview setDataSource:self];

[self.tableview reloadData];