-->

错误:属性“数据”的类型“ID”的对象未找到(Error: property 'data&#

2019-11-02 12:49发布

我得到了当用户更改文本字段更新数据模型的价值也就是所谓的方法titleFieldValueChanged此错误。

在DetailViewController.m:

- (IBAction)titleFieldTextChanged:(id)sender
{ 
    self.detailItem.data.title = self.titleField.text;
}

我知道我在括号标记,正确的写? 但我无法弄清楚如何做到这一点。

Answer 1:

支架符号看起来是这样的:

[[[self detailItem] data] setTitle:[[self titleField] text]];

实际的错误听起来更像是一个类型的错误,但。 无论是detailItem的类型实际上并没有一个数据属性,或者不是很明显detailItem是什么类型的类。



Answer 2:

看你的代码,你Segue公司之前(我改变了它略 - 做同样的事情)。 该代码你送崩溃,试图从Segue公司掌握细节的时候。 这是更大的问题,我发现。

- (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对象。

我建议你请跟随本教程,它会告诉你正在试图让,你提到你是一个初学者什么一个很好的例子。

iOS版教程:如何创建一个简单的iPhone应用程序



文章来源: Error: property 'data' not found on object of type 'id'