UIScrollView 之 EXC_BAD_ACCESS
来源:互联网 发布:金融学实训软件 编辑:程序博客网 时间:2024/06/05 23:52
废话只说一句,直接进主题:额。。。
@interfaceHYTOrderCommentViewController ()<UIScrollViewDelegate>
@property (nonatomic,weak)UIScrollView *scrollView;
@end
@implementation HYTOrderCommentViewController
-(UIScrollView *)scrollView {
if (_scrollView ==nil) {
UIScrollView *scrollView = [[UIScrollViewalloc] initWithFrame:self.view.frame];
scrollView.delegate =self;
[self.viewaddSubview:scrollView];
_scrollView = scrollView;
}
return_scrollView;
}
#pragma mark -scrollViewDelegate 代理
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self.viewendEditing:YES];
}
由于项目需要,在项目中使用了scrollview,并把delegate 设置为self;
随后 navigationcontroller pop时 HYTOrderCommentViewController销毁,在HYTOrderCommentViewController界面还未从屏幕(系统默认是左向右滑出屏幕)滑出时快速的上下拉动屏幕(根控制器是tableViewController,可以拉动),程序crash。
报错 EXC_BAD_ACCESS,野指针错误。
添加NSZombieEnabled 和 MallocStackLogging (用完记得删除)
重复运行程序,crash后会报错
*** -[HYTOrderCommentViewController scrollViewDidScroll:]: message sent to deallocated instance 0x7fe256cb0200
大概意思是调用了已经释放的HYTOrderCommentViewController对象的scrollViewDidScroll方法;
可见,使用scrollview的代理并不是很安全,需要在使用后 dealloc 方法里置空 (nil);
- (void)dealloc {
self.scrollView.delegate = nil;
NSLog(@"dealloc------死了好多次啦");
}
- UIScrollView 之 EXC_BAD_ACCESS
- 崩溃问题之EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS
- EXC_BAD_ACCESS之NSZombieEnabled以及全局断点调试
- iOS 开发之EXC_BAD_ACCESS异常分析
- EXC_BAD_ACCESS之NSZombieEnabled以及全局断点调试
- iOS 开发之EXC_BAD_ACCESS异常分析
- XCode调试技巧之EXC_BAD_ACCESS中BUG
- iOS 开发之EXC_BAD_ACCESS异常分析
- iOS 开发之EXC_BAD_ACCESS异常分析
- iPhone控件之UIScrollView
- iPhone控件之UIScrollView
- Python学习第一篇之python 连接字符串和数字
- WebView和js交互
- Codevs3657括号序列题解
- 第37讲-项目四-大奖赛计分
- Flex4.6+blazeDS+MyEclipse10+SQLSERVER项目环境搭建
- UIScrollView 之 EXC_BAD_ACCESS
- Fragment介绍
- LeetCode | Reverse Integer
- C#常用方法
- 从阳灿众筹网,看国内众筹平台的推广
- 第三次java作业:网络编程
- 安卓使用闪光灯
- 双线程间的通信
- android的动画之translate