0

例如,我有 A 视图和 B 视图,一些值是从 A 传递到 B。

B.m中,我写道:

A *av = [[A alloc] init];
[av setDelegate:self]

是不是和我写的一样A.m

B *bv = [[B alloc] init];
[self setDelegate:bv];

我应该把这个“setDelegate”放在哪里?在viewDidLoad?编译器没有产生任何错误,但是值传递没有成功,有人可以给我一些提示吗?谢谢

4

1 回答 1

1

通常,使用委托的目的是委托对象(av在这种情况下)需要来自外部对象的某种帮助。如果该对象设置了自己的委托,就像您对 所做的那样bv,这会否定拥有外部对象的优势。也就是说,如果A知道它想要一个实例B作为它的委托,您不妨将代码从其中滚动BA跳过整个委托业务。

也就是说,默认情况下A可能会B用作其委托,但仍允许将某个其他类的实例设置为委托以更改某些行为。如果这是您的目标,您可能会在早期A设置一个实例B作为其委托,可能在它-init(或其他初始化程序)中。

于 2012-09-24T04:00:08.363 回答