如何在MasterViewController中释放对象

时间:2010-02-09 11:14:36

标签: objective-c

这里我怀疑我有一个没有Superview的MasterViewController,而且我有全局声明的标签,也用于不同的功能。     我的问题是如何释放那些已分配的标签。如果我使用自动释放,那么它会产生异常。

- (id)init {
   if(self = [super init]) {

mview = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    //mview.backgroundColor=[UIColor clearColor];
    mview.autoresizesSubviews=YES;
    tableView = [[UITableView alloc] initWithFrame:CGRectMake(0,220,320,440) style:UITableViewStyleGrouped];    
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.rowHeight = 45;
    tableView.backgroundColor = [UIColor clearColor];;
    tableView.separatorColor = [UIColor blackColor];
    [tableView setSectionHeaderHeight:15];
    [tableView setSectionFooterHeight:10];
[mview addSubview:tableView];
}
 for example here I declared table view as global how can i release it?Is it possible to release in dealloc.I place a printf statement in dealloc but it was not displaying.

Anyone's help will be appreciated.

Thank you,

Monish Kumar.

1 个答案:

答案 0 :(得分:0)

首先,真的没有必要在全球范围内宣布这么多东西,真的是你应该只把它作为最后的手段。所以我会尝试重做你的代码来避免这种情况。

听起来你真的需要在Instruments中运行Zombies乐器,并为环境变量启用NSZombiesEnabled为YES,并查看对象保留计数的位置是否增加&递减,并且消息的僵尸对象的第一个实例在哪里。

您可以在此处查看此示例:http://www.corbinstreehouse.com/blog/2007/10/instruments-on-leopard-how-to-debug-those-random-crashes-in-your-cocoa-app/