0

我在这个错误中使用未声明的标识符不同的常见错误,有时很容易修复但我无论如何都是堆栈,可能我以错误的方式观看。

我正在尝试做一本日志,人们可以在其中写下他们想要的内容并保存在 plist 中。

从一个 tableView 中,我将显示所有保存的文件,我将推送到一个 xib 视图,人们可以在其中填写字段。我已经导入了新的 .h 和定义密钥的 .h 。

这里出现错误。

- (void) viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    name.text = [bookLog objectForKey:NAME_KEY];
    placeTextView.text = [bookLog objectForKey:PLACE_KEY];
    file1TextView.text = [bookLog objectForKey:FILE1_KEY];
    file2TextView.text = [bookLog objectForKey:FILE2_KEY];
 }

bookLog 有 4 个错误,每行有 1 个错误,name.text、placeTextView.text、file1TextView.text、fileTextView.text 有 1 个错误。

任何的想法?

谢谢

4

2 回答 2

1

我认为这是因为您没有合成您正在谈论的属性。m 它只是说它@synthesize data1;何时应该合成您有错误的所有属性。(@synthesize placeTextView; @synthesize...此外,当您应该在 .m 中声明时,您在 .h 文件中进行了声明

于 2012-08-16T06:44:26.683 回答
0

您在diveLogTable.m 中引用的属性不是diveLogTable 类的成员,因此当您在此处提及它们时,编译器会将它们视为未定义。它们在diveLogDetails 类上公开定义,因此可以在那里访问它们(或通过为它们询问该类的实例)。

未编译的代码可以移到diveLogDetails 类中。当视图控制器的视图出现时,这是您想要做的(设置 UIControls)。它将在那里编译,并且在那里似乎很有意义。

在我看来,您在diveLog 字典中保存了一些diveLog 信息,并且您希望将该数据呈现给用户并允许通过diveLogDetails 类进行编辑(通常以大写字母开头的类名和名称视图控制器使用该后缀,例如:DiveLogDetailsViewController)。

diveLogDetails 类中的diveLog 字典是唯一应该公开的属性。当您创建diveLogDetails VC 时,按照您的方式设置字典。

让diveLogDetails 从字典中读取值,设置它的UIControls,当用户更改控件的值时更改字典值(并点击保存,或其他)。返回diveLogTable 后,最新值将在字典中。

于 2012-08-17T04:57:59.127 回答