我是IOS的新手。抱歉我的一周英语,那个时候面临一个问题。我的问题是我在我的项目中使用CoreData。在我的项目中,TableViewCell从左向右滚动。滑动是正确的,但我想要刷过该单元格并更改数据库值。特定的indexpath.row是在DataBase表中滑动和相同的行内容更改。
通过SWTableViewCell This Tutorial
滑动TableViewCell- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state{
if(state ==1){
NSLog(@"animation start");
}
else
NSLog(@"animation end");
}
我试了很多天但是没有在TableViewCell刷卡的同一行中更新DataBase表,我该怎么做呢,请帮忙,谢谢你
- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state{
if(state ==1){
NSIndexPath *indexPaths = [self.table_view indexPathForCell:cell];
NSManagedObject *selectedDevices = [self.devices objectAtIndex:[self.table_view indexPathForCell:cell].row];
NSLog(@"device %@",selectedDevices);
[selectedDevices setValue:@"OnTime" forKeyPath:@"time"];
NSError *saveError = nil;
[self.managedObjectContext save:&saveError];
if (saveError)
{
}
else
{
}
}
答案 0 :(得分:0)
根据评论中的讨论,您需要按照这些简单的步骤来实现您想要的目标
tag
方法cellForRowAtIndexPath:
设置单元格的cell.tag = indexPath.row
,以便您可以稍后从devices
数组中获取记录delegate
小区访问方法中,使用相关的NSManagedObject
并更新time
indexPath
重新加载单元格代码如下:
NSInteger index = cell.tag;
NSManagedObject *device = [self.devices objectAtIndex:index];
[device setValue:[NSDate date] forKey:@"tine"];
NSError *error;
if ([context save:&error]) {
[self.tableView reloadRowsAtIndexPaths:[NSIndexPath indexPathForRow:index inSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
}