当用户基于cell.accessoryType单击UITableView中的单元格以显示是否已单击该项目时,我正在尝试编辑CoreData对象.这是当前的代码.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSManagedObject *itemToUpdate = [groceryArray objectAtIndex:indexPath.row];
NSLog(@"updating: %@", itemToUpdate);
if (cell.accessoryType == UITableViewCellAccessoryCheckmark) {
cell.accessoryType = UITableViewCellAccessoryNone;
itemToUpdate.purchased = NO;
}else {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
itemToUpdate.purchased = YES;
}
// Commit the change.
NSError *error;
if (![managedObjectContext save:&error]) {
// Handle the error.
NSLog(@"Saving changes failed: %@", error);
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎是选择正确的对象,因为NSLog()将显示正确的项目,但当我尝试使用点表示法更新时,例如"itemToUpdate.purchased = YES;" 编译器抛出错误"请求成员'购买'的东西不是结构或联合".
我知道我可能做错了(我在xcode中的第一个项目) - 任何建议都将非常感谢!
谢谢
你有没有尝试过:
[itemToUpdate setValue:[NSNumber numberWithBool:NO] forKey:@"purchased"]
Run Code Online (Sandbox Code Playgroud)
形成?
我总是子类NSManagedObject,点符号适用于声明的属性.但你可以试试这个"较旧"的符号来看看它是否有效.
| 归档时间: |
|
| 查看次数: |
13232 次 |
| 最近记录: |