我在方法titleFieldValueChanged中收到此错误,当用户更改文本字段的值以更新数据模型时,会调用该方法。
在DetailViewController.m中:
- (IBAction)titleFieldTextChanged:(id)sender
{
self.detailItem.data.title = self.titleField.text;
}
我知道我必须用括号表示法写这个,对吗?但我无法弄清楚如何做到这一点。
答案 0 :(得分:0)
括号表示法如下所示:
[[[self detailItem] data] setTitle:[[self titleField] text]];
但实际错误听起来更像是类型错误。要么detailItem的类型实际上没有数据属性,要么显然没有类型的detailItem类型。
答案 1 :(得分:0)
查看你的代码,在你发现之前(我稍微改了一下 - 做同样的事情)。当您尝试从主设备切换到详细信息时,您发送的代码会崩溃。这些是我发现的更大问题。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
DetailViewController *dvc = segue.destinationViewController;
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSDate *object = _exercises[indexPath.row];
dvc.detailItem = object;
}
}
// in detail view
@property (strong, nonatomic) NSDate *detailItem;
您传递给详细视图控制器的“对象”是NSDate对象。
您无法为NSDate对象设置标题。
执行
时也遇到问题[[self detailItem] setFullImage:fullImage];
[[self detailItem] setThumbImage:thumbImage];
再次尝试将图像设置为NSDate对象。
我建议您按照本教程进行操作,它会显示您正在尝试制作的一个很好的示例,正如您提到的,您是初学者。