我之前用太多的代码问过这个问题。
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标头的导入
答案 0 :(得分:1)
是否有可能在两次NSLog调用之间释放/取消分配视图控制器对象?