当前位置:  开发笔记 > 编程语言 > 正文

发布NSMutableDictionary时出现问题

如何解决《发布NSMutableDictionary时出现问题》经验,为你挑选了1个好方法。

当我尝试发布字典时,我得到一个例外.

这是我的代码:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    if (!tableDataDictionary)
{
    DebugLog(@"initializing tableDataDictionary");
    tableDataDictionary = [ [NSMutableDictionary alloc] init];
}
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [mainTableView deselectRowAtIndexPath: [mainTableView indexPathForSelectedRow] animated:NO];

    [tableDataDictionary release];
}

我该如何解决?



1> Ben Gottlieb..:

您很可能需要取消tableDataDictionary实例变量.否则,第一次运行这些方法时,它将正常工作,但第二次,tableDataDictionary将不会为nil,并将指向dealloc'd指针; 因此不会进行alloc调用,并且当调用viewWillDisappear:时,它将尝试再次释放该指针.所以,解决它:

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [mainTableView deselectRowAtIndexPath: [mainTableView indexPathForSelectedRow] animated:NO];

[tableDataDictionary release];
tableDataDictionary = nil;

}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [mainTableView deselectRowAtIndexPath: [mainTableView indexPathForSelectedRow] animated:NO];

[tableDataDictionary release];
tableDataDictionary = nil;

}

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有