2008-10-28 94 views
0

我有MainViewController调用WebViewController(从UICatalog示例应用程序) 在WebViewController中,我做了一些函数setValue(){...}设置一些值作为参数传递给变量(NSString *值)从WebViewController .h但是当我尝试从MainViewController东西像WebViewController targetViewController ... targetViewController.setValue(值),它说:“错误:请求成员'setValue'的东西不是结构或联盟”...通过值之间的值

回答

1

如果你有一个名为“value”的属性,并使用@sythesize为你创建一个方法,在这种情况下你使用“。”来调用。注释:

targetViewController.value = whatever; 

或者你可以拨打二传手彻底无论您或@synthesize编写方法:

[targetViewController setValue:whatever]; 

的属性语法(class.property =什么)真的只是一个快捷方式调用一个“setValue:”方法,作为回报,属性的@property和@synthesize机制只是为你写了一段有用的代码。

编辑:我以前说过,如果你只是写了一个“setValue:”方法,你可以使用“class.value = newValue”符号来调用它,但这是不正确的 - 你必须定义一个@property来使用“ “。符号。

1

我相信

targetViewController.value = whatever; 

如果你已经拥有了@property只会工作,申报;如果不是,则需要使用完整的方法调用语法:

[targetViewController setValue: whatever]; 

否则,Kendall对于使用setters和@synthesize是正确的。

而且你的语法使用过程Ç

targetViewController.setValue(value); 

绝对将无法​​正常工作写入。

+0

对我而言,你是完全正确的 - 在测试之后,你必须使用@property来使用class.value语法进行调用。我会编辑我的回应,以免传播错误的观念...... – 2008-10-28 18:54:04

0

您还需要确保#import您的targetViewController.h文件。