tableView:cellForRowAtIndexPath: 在 iPhone 上测试时无法正常工作
目前我有一个 uitableview,用户可以滚动并选择一个单元格。当单元格被选中时,我保存该索引路径值,当用户返回到其中包含 uitableview 的视图时,我将返回该索引路径值,并使用下面的代码为 tableView:cellForRowAtIndexPath: 内的该单元格分配一个勾号。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//...
//Replaces previously selected cells accessory view (tick)
if (indexPath == oldCheckedData)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
NSLog(@" Tick");
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
NSLog(@"No Tick");
}
}
奇怪的是,当在模拟器上测试它时,它工作得很好......但是,当我尝试在手机上测试它时,它永远不会进入第一个 if 语句......所以永远不会添加勾号。
Currently i have a uitableview that the user can scroll through and select a cell. When the cell has been selected I save that indexpath value and when the user comes back to the view with the uitableview in it I pass that indexpath value back and assing a tick to that cell inside tableView:cellForRowAtIndexPath: using the code below.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//...
//Replaces previously selected cells accessory view (tick)
if (indexPath == oldCheckedData)
{
cell.accessoryType = UITableViewCellAccessoryCheckmark;
NSLog(@" Tick");
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
NSLog(@"No Tick");
}
}
the weird thing being is that when testing this on the emulator it works perfectly.... However when I try to test it on the phone it never enters the first if statement... so the tick is never added.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为您正在比较指针,而不是索引路径。使用以下方式代替相等:
I think you are comparing pointers, not the index path. Instead of equal equal, use: