在类中声音的变量不用进行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