UITableView数据显示在模拟器中,但不显示在实际设备上

时间:2017-10-24 07:19:32

标签: ios objective-c

我创建了一个自定义的tableViewCell,并用数据填充它。数据在模拟器中显示正常,但不会在设备上填充。以下是我的代码。感谢您提前提供任何帮助,这个真的很吸引我。

viewDidLoad中:

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self initColors];
[self initDB];
[self.pointsTableView reloadData ];
}

numberOfSections / RowsInSection:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [[self.dealNameCountDict allKeys]count];
}

的cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
ProfileTableViewCell *cell = (ProfileTableViewCell*)[tableView dequeueReusableCellWithIdentifier:@"ProfileTableViewCell" forIndexPath:indexPath];

if (cell == nil)
{
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ProfileTableViewCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}

// Configure the cell...
NSArray<NSString*> *keys = [self.dealNameCountDict allKeys];
NSString *k = [keys objectAtIndex:indexPath.row];

// should be a dictionary for businessNameLabel
cell.textLabel.text = k;
cell.detailTextLabel.text = [[self.dealNameCountDict objectForKey:k] stringValue];


return cell;
}

2 个答案:

答案 0 :(得分:1)

重新加载表格视图后,您可能正在填充字典。该设备的运行速度通常比模拟器快一点 - 因此,如果您获取数据异常,可能就是原因。

尝试在字典的setter中重新加载表格视图。

- (void)setMyDictionary:(NSDictionary*)myDictionary {

   _myDictionary = myDictionary;
   [table reloadData];

}

答案 1 :(得分:0)

原来还有另一个文件本地函数,它在创建表之后和调用dealNameCountDict之后初始化viewDidLoad。我刚刚添加了

[self.pointsTableView reloadData ];

到该函数的结尾,这似乎解决了异步问题。