【发布时间】:2010-11-23 08:40:10
【问题描述】:
我之前用太多代码问过这个问题。
ViewController 在 ViewController 中初始化一个 UIView 链,Controller>>View>>SubView。在 SubView 初始化之后,ViewController 被设置为它的代理:
aSubView.delegate = self;
NSLog(@"$@",aSubview.delegate), 返回 ViewController,所以我知道它已设置。
在子视图中,NSLog(@"$@",self.delegate),返回随机垃圾,例如 hr.lproj 或 Foundation 框架的文件路径。
尝试实现任何委托方法时它会崩溃,因为委托没有链接到 ViewController 而是随机性。
这是 SubView.h 文件的样子:
#import "TestDelegate.h"
@interface TestSubView : UIView {
id<TestDelegate> delegate;
}
@property (assign) id<TestDelegate> delegate;
编辑:ViewController 在应用程序委托中被初始化:
ViewController *controller = [[ViewController alloc] init];
[window addSubview:controller.view];
[controller release];
我添加到 App Delegate 的唯一另一件事是导入 ViewController 标头
【问题讨论】:
标签: iphone cocoa-touch delegates delegation