仪器说这个功能漏了。我是Obj-C的新手所以原谅我错过了一些明显的东西,除了我不确定我是否在这里做了一切。
(void) selectList:sender {
NSMutableString *nibName = @"myController";
MyOwnController *study = [[MyOwnController alloc] initWithNibName:nibName bundle:nil];
study.title = @"Fundamentals";
study.listNameToLoad = @"funds";
[self.navigationController pushViewController:study animated:YES];
[nibName release];
[study.title release];
[study.listNameToLoad release];
[study release];
study = nil;
}
相关问题。一旦你pushViewController
,你应该总是在控制器上执行release
,你刚推到堆栈上了吗?
答案 0 :(得分:2)
您应首先阅读this。
总之,您只有在创建或复制时才会发布。您已经发布了许多未创建/复制的变量,并且不负责发布。因此,您不应该发布nibName,study.title& study.listNameToLoad。
同样,您应该在控制器的dealloc方法中释放'title'和'listNameToLoad'属性。
至于您的相关问题,只有在您不再需要参考时才可以释放控制器。如果您确实选择保留引用,则需要在以后不再需要时释放引用。