我在这个错误堆栈中使用未声明的标识符变化常见错误,有时很容易修复,但我无论如何堆栈,可能我正在以错误的方式观看。
我正在尝试做一本日志,人们可以写下他们想要的东西并保存在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 1有4个错误,name.text,placeTextView.text,file1TextView.text,fileTextView.text。
有什么想法吗?
由于
答案 0 :(得分:1)
我认为它是因为你没有合成你在谈论的属性。它只是说@synthesize data1;
它应该合成你也有错误的所有属性。 (@synthesize placeTextView;
@synthesize...
,当您在.m中声明时,您在.h文件中声明了
答案 1 :(得分:0)
您在diveLogTable.m中引用的属性不是diveLogTable类的成员,因此当您在那里提及它们时,编译器会将它们视为未定义。它们是在diveLogDetails类中公开定义的,因此可以在那里访问它们(或者通过向它们询问该类的实例)。
可以将未编译的代码移动到diveLogDetails类中。当 视图控制器的视图出现时(设置UIControls),这就是你想要做的。它将在那里编译,似乎在那里有意义。
在我看来,您可以在diveLog词典中保存一些潜水日志信息,并且您希望将该数据呈现给用户并允许通过diveLogDetails类进行编辑(通常使用大写字母和使用该后缀命名视图控制器,如下所示:DiveLogDetailsViewController)。
diveLogDetails类中的diveLog字典是唯一应该公开的属性。创建diveLogDetails VC时,请按原样设置字典。
让diveLogDetails读取字典中的值,设置它的UIControls,当用户更改控件的值(并点击保存或其他)时更改字典值。返回到diveLogTable后,最新的值将出现在字典中。