使用未声明的标识符语义问题

时间:2012-08-14 23:44:44

标签: iphone ios5 xcode4 xcode4.3

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

我正在尝试做一本日志,人们可以写下他们想要的东西并保存在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。

有什么想法吗?

由于

2 个答案:

答案 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后,最新的值将出现在字典中。