我之前用太多代码问过这个问题。
ViewController 在 ViewController 中初始化一个 UIView 链,Controller>>View>>SubView。在 SubView 初始化之后, ViewController 被设置为它的委托:
aSubView.delegate = self;
NSLog(@"$@",aSubview.delegate),
返回 ViewController,所以我知道它已设置。
在 SubView 中,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 标头