点击tableView
中的单元格,我正在创建新的NSManagedObject
实例并回滚到之前的viewController
:
User *user = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.delegate setSupervisorGUID:user.server_id supervisorTitle:user.name];
[self.navigationController popViewControllerAnimated:YES];
在同一个viewController
我有一个取消按钮还有什么回滚到上一个viewController
但没有设置新对象(归零用户对象):
[self.delegate setSupervisorGUID:[NSNull null] supervisorTitle:@"User not set"];
[self.navigationController popViewControllerAnimated:YES];
这种方法可以解决问题,但我认为这在逻辑上是不正确的,我也在这里发出警告。我怎么能以正确的方式做到这一点?
更新
警告是:
不兼容的指针类型将'NSNull *'发送到类型的参数 'NSString *'
以下是-setSupervisorGUID:supervisorTitle:
- (void) setSupervisorGUID:(NSString *) supervisorId supervisorTitle:(NSString *) supervisorTitle
{
if ([formData[@"visit_type_id"] isEqualToString:supervisorId]) return;
[formData setObject:supervisorId forKey:@"supervisor_id"];
[formData setObject:supervisorTitle forKey:@"supervisorTitle"];
supervisorCell.detailTextLabel.text = supervisorTitle;
[self.tableView reloadData];
}
答案 0 :(得分:1)
NSNull *
与NSString *
不兼容。但你可以打电话
[self.delegate setSupervisorGUID:nil supervisorTitle:@"User not set"];
而是在委托方法中检查supervisorId == nil
。