当前位置:编程学习 > wap >>

在类中声音的变量不用进行Release吗?为什么应用报:EXC_BAD_ACCESS

如我的类
WeiboView.h

@inte易做图ce WeiboView : UIView <RTLabelDelegate>
{
    @private
    RTLabel     *_textLabel;                //微博内容
    UIImageView *_image;                    //微博图片
    UIImageView *_repostBackgroundView;     //转发的微博的背影图片
    WeiboView   *_repostView;                //转发的微博视图
    NSMutableString *_parseText;            //格式化HTML后的字符
}

WeiboView.m


- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self _initView];//这里对上面的几个谜题进行初始化
    }
    return self;
}
- (void)dealloc
{
    [_textLabel release];
    [_image release];
    [_repostBackgroundView release];
    [_parseText release];
    [super dealloc];   //程序在这里报EXC_BAD_ACCESS错误,然后我把上面的4句代码注释掉的话就不会报了
}

那么是不是说在.h里面声明的亦是不用在dealloc进行中进行release,而是系统会自动释放?
谢谢 --------------------编程问答-------------------- 只要alloc以后就要release,不过看不到你的赋值代码,估计有可能你把局部变更赋给了这些全局变量,你可以在release之前先判断一下:
if (_textLabel) [_textLabel release]; --------------------编程问答--------------------     //微博内容
    _textLabel = [[RTLabel alloc] initWithFrame:CGRectZero];
--------------------
都是alloc出来的,
我出错的地方不是Release,而是在
[super dealloc];   //程序在这里报EXC_BAD_ACCESS错误

谢谢 --------------------编程问答-------------------- 可能还是僵尸指针的问题,可参考下面的方法打开僵尸指针错误日志,查看具体是哪个对像出了问题:
http://stackoverflow.com/questions/3426709/iphone-exc-bad-access-when-calling-super-dealloc-on-a-custom-uiviewcontroller --------------------编程问答-------------------- 这种问题的出现说明,已经释放内存的对象再次释放会出现的错误。你Debug一下,看看这四个对象那个已经被释放了,确定了哪一个后,再去检查代码是不是前面释放过了。随便提一句,推荐使用ARC --------------------编程问答-------------------- 也建议一个,搞清楚内存管理机制后再使用ARC --------------------编程问答-------------------- 打开内存工具 运行一下 或者 在每个init的地方打印出变量的数量来 看是不是多释放了....
补充:移动开发 ,  iPhone
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,