Ios 在UITableViewCell touch上更新核心数据对象
我有一个简单的todo应用程序,用户可以通过触摸单元格来选中/取消选中任务。但我不知道如何更新核心数据,将completed的布尔值设置为yes 这是我的密码: // //PakkelisteViewController.m //萨默莱尔 // //由罗尼·安德烈·本迪克森于2014年5月8日创作。 //版权所有(c)2014 Arbeidernes Ungdomsfylking。版权所有。 // 更改:Ios 在UITableViewCell touch上更新核心数据对象,ios,objective-c,core-data,uitableview,Ios,Objective C,Core Data,Uitableview,我有一个简单的todo应用程序,用户可以通过触摸单元格来选中/取消选中任务。但我不知道如何更新核心数据,将completed的布尔值设置为yes 这是我的密码: // //PakkelisteViewController.m //萨默莱尔 // //由罗尼·安德烈·本迪克森于2014年5月8日创作。 //版权所有(c)2014 Arbeidernes Ungdomsfylking。版权所有。 // 更改: tappedItem.completed = !tappedItem.completed;
tappedItem.completed = !tappedItem.completed;
致:
这是在NSNumber
实例中对bool值进行的最小代码解包和重新打包
另外,在if
语句中,不要检查BOOL值==1,因为这不一定是真的。只要说:
if ([tappedItem.completed]) { ...
您正在使用的复选框图像的名称似乎也有输入错误。如果在tableView:tableView didSelectRowAtIndexPath:
中移动代码以更新单元格的状态,该怎么办?此外,您能否解释一下您的意思,但我不确定如何将核心数据的布尔值设置为“是”来更新核心数据
更新托管对象的状态后,保存正在使用的上下文,然后可以对整个表或特定索引路径执行重新加载
BOOL hasTap = ![tappedItem.completed boolValue];
tappedItem.completed = @(hasTap); // or [NSNumber numberWithBool:hasTap];
// save
// reload
我真的同意乔纳森的意见。使用UITableView
s(或UICollectionView
s)向wotk创建NSFetchedResultsController
。您可以将其委托设置为NSFetchedResultsControllerDelegate,以侦听和处理插入、删除、移动行(和节)的操作
教程应该是。也许可以告诉我们您到目前为止尝试了什么,因为在核心数据文档中很容易找到。代码的基本逻辑如下:处理单元格选择、获取要更新的对象、更新相关属性、保存上下文。NSFetchedResultsController的实现是一个不错的选择,可以处理插入、更新、,以及删除节和行。@Jonathan我发现Apple文档有点混乱。你知道有什么好的教程或视频可以教我这个吗?
if ([tappedItem.completed]) { ...
BOOL hasTap = ![tappedItem.completed boolValue];
tappedItem.completed = @(hasTap); // or [NSNumber numberWithBool:hasTap];
// save
// reload