委托在View Controller中设置,而不是在子视图中维护

时间:2010-11-22 23:24:06

标签: iphone cocoa-touch delegates delegation

我之前用太多的代码问过这个问题。

ViewController在ViewController中初始化UIView链,Controller>> View>> SubView。初始化SubView后,ViewController被设置为其委托:

aSubView.delegate = self;

NSLog(@"$@",aSubview.delegate),返回ViewController,因此我知道它已设置。

在SubView中,NSLog(@"$@",self.delegate),返回随机垃圾,例如hr.lproj或基础框架的文件路径。

尝试实现任何委托方法时崩溃,因为委托不链接到ViewController而是链接。

这是SubView.h文件的样子:

#import "TestDelegate.h"

@interface TestSubView : UIView {

 id<TestDelegate> delegate;
}

@property (assign) id<TestDelegate> delegate;

编辑:ViewController在app delegate中初始化为:

ViewController *controller = [[ViewController alloc] init]; 
[window addSubview:controller.view];
[controller release];

我添加到App Delegate的唯一另一件事,默认情况下是ViewController标头的导入

1 个答案:

答案 0 :(得分:1)

是否有可能在两次NSLog调用之间释放/取消分配视图控制器对象?