我有一个名为tiledimage的自定义uiview,它有一个名为tiledimage的属性和一个自定义drawrect方法。我将此视图添加到我的ViewController,但当解除分配ViewController时,将永远不会调用此视图的DealLoc,即使我正在释放该视图并将其设置为零。是什么导致的?我没有任何其他对视图的引用,所以我的理解是它应该正确地发布。
这是我将视图添加到视图控制器的方式:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"tile" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
self.backImageView = [[TiledImage alloc] initWithFrame:IMAGE_FRAME];
self.backImageView.tiledImage = image;
[self.view addSubview:self.backImageView];
[self.view sendSubviewToBack:self.backImageView];
[image release];
在我的viewController的dealLoc方法中,我有:
_backImageView.tiledImage = nil, [_backImageView release], _backImageView = nil;
该行代码被命中,但从未在tiledview上调用dealloc。请注意,backImageView是backImageView属性使用的var。
有人能告诉我我可能做错了什么,从而阻止调用tileImage对象上的dealLoc吗?