`
xhanxhanxhan
  • 浏览: 207575 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于 EXC_BAD_ACCESS

阅读更多

简单看了下 Objective-c 的语法就开始Iphone开发了,

所以出各种奇怪问题都不奇怪。

根据官方解释 http://developer.apple.com/qa/qa2004/qa1367.html

出现 EXC_BAD_ACCESS 原因在于过度 release

而如果你程序中没有过度 release 就应该检查下 使用了类似 [NSString stringwithformat""]的函数

这种方法将会返回 autorelease 对象

 

我出现的情况就是使用了 [NSMutableArray arrayWithCapacity] 方法。该死。

 

But if you get something back from just about anything else including factory methods (e.g. [NSString stringWithFormat]) then you'll have an autorelease reference, which means it could be released at some time in the future by other code - so it is vital that if you need to keep it around beyond the immediate function that you retain it. If you don't, the memory may remain allocated while you are using it, or be released but coincidentally still valid, during your emulator testing, but is more likely to be released and show up as bad access errors when running on the device.

The best way to track these things down, and a good idea anyway (even if there are no apparent problems) is to run the app in the Instruments tool, especially with the Leaks option.

 

分享到:
评论

相关推荐

    查找 EXC_BAD_ACCESS 问题根源的方法

    ### 查找 EXC_BAD_ACCESS 问题根源的方法 #### 一、EXC_BAD_ACCESS 错误简介 EXC_BAD_ACCESS 是一种常见的 Objective-C 编程错误,通常发生在试图访问已释放或未分配的内存时。这类错误往往难以追踪,因为它们可能...

    查找EXC_BAD_ACCESS的错误代码处

    ### 查找EXC_BAD_ACCESS错误代码处:利用Instrument工具定位问题 #### 一、引言 在软件开发过程中,特别是iOS应用开发中,经常会遇到难以捉摸的内存管理问题,其中最常见的之一就是`EXC_BAD_ACCESS`错误。这种类型...

    ios EXC_BAD_ACCESS错误调试

    在iOS开发中,EXC_BAD_ACCESS错误是一种常见的运行时错误,通常是因为程序尝试访问已被释放的内存地址导致的。当程序尝试访问一个已经释放的对象时,系统就会抛出EXC_BAD_ACCESS错误,这在C语言中通常被理解为使用了...

    关于出现僵尸信号SIGBAT或者EXC_BAD_ACCESS的解决方案

    标题中的“僵尸信号SIGABRT或EXC_BAD_ACCESS”是iOS开发中常见的错误类型,主要与内存管理和对象生命周期有关。这两个错误通常出现在Objective-C或Swift编程中,涉及到内存泄漏、过早释放对象或者试图访问已经释放的...

    iOS内存错误EXC_BAD_ACCESS的解决方法

    iOS开发,最郁闷的莫过于程序毫无征兆地就崩溃了,用bt命令打出调用栈,给出的是一堆系统EXC_BAD_ACCESS的信息,根本没办法定位问题出现在哪里。 首先说一下 EXC_BAD_ACCESS 这个错误,可以这么说,90%的错误来源...

    ios-GPUImageFiltersCamera.zip

    出现EXC_BAD_ACCESS。 需要修改Product->Scheme->Edit Scheme->Options->GPU Frame Capture 选择 Disabled。 功能介绍 模仿Filckr的照相功能实现了: 1.实时滤镜 2.相机基本功能:拍照,对焦,前后...

    CGImageIssueDemo:核心图形问题测试

    CGImageIssueDemo 核心图形问题测试 做什么的 似乎对于iOS 11.2 +, CoreGraphics.framework发生了奇怪的... 这导致EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 。 重现步骤 使用CGDataProviderCreateDi

    ios-打印log和奔溃日志.zip

    - **异常类型**: 常见的奔溃原因有EXC_BAD_ACCESS(内存访问错误)、EXC_CRASH(程序异常终止)、SIGABRT(应用程序自己请求退出)等,分析这些异常类型可以帮助定位问题根源。 - **线程信息**: 奔溃日志中的线程...

    GPUImageFiltersCamera相机

    出现EXC_BAD_ACCESS。 需要修改Product->Scheme->Edit Scheme->Options->GPU Frame Capture 选择 Disabled。 功能介绍 模仿Filckr的照相功能实现了: 1.实时滤镜 2.相机基本功能:拍照,对焦,前后摄像头转换...

    藏经阁-云时代下的 性能优化&运维实践之路.pdf

    1. 应用程序崩溃检测:使用信号捕获机制(EXC_BAD_ACCESS、SIGSEGV、SIGBUS等)来检测应用程序崩溃,通过崩溃日志上报脚本add to build phrase生成日志码力实时告警数据存储,从而实现在应用程序崩溃时快速定位问题...

    iOS-interview-preparation:iOS开发人员面试准备指南

    在什么情况下应用会因EXC_BAD_ACCESS错误而崩溃? 推荐阅读: 自动版面 多任务-GCD,NSOperations等 设计模式-委派,单例,块等 积木 什么是区块?何时在您的应用中使用它们? 块如何使在块外部声明的变量发生...

    iOS Crash日志收集上报

    Mach异常可以是EXC_BAD_ACCESS(内存访问异常)等。Mach异常是通过Mach API暴露给用户态的,可以直接通过Mach API设置thread、task、host的异常端口来捕获Mach异常,抓取Crash事件。 二、Unix Signal Unix Signal...

    杜蕾斯安全工具

    //EXC_BAD_ACCESS,非ARC正常 } returnnil; } 在几个项目种试了下,没发现啥问题,想用的尽管拿去用,另外非常欢迎参与完善,目前仅替换了几个类,还有很多需要替换的,请在github中关注,工具包以增量的形式,...

    Crash log on target platform

    在实际操作中,我们应打开这个文件,查找其中的关键信息,如错误代码(如EXC_BAD_ACCESS、SIGSEGV等),异常类型,以及可能与之相关的线程信息。同时,日志中可能还包含了崩溃前执行的最后几行代码,这对于复现问题...

    iOS崩溃日志解析

    2. **检查异常信息**:有时,崩溃日志会包含异常信息,如`EXC_BAD_ACCESS`或`SIGABRT`,这可以帮助确定问题类型。 3. **查看局部变量和状态**:如果日志包含崩溃时的变量值,可以分析这些值以确定问题所在。 4. **...

    ios解析crash示例文件上传

    - **异常类型**:日志中会显示异常类型,如`EXC_BAD_ACCESS`、`SIGABRT`等,不同类型的异常对应不同的问题。 - **错误信息**:查看错误信息,如`NSException`的`reason`,有助于理解崩溃的具体情况。 - **堆栈...

    如何在xcode里面使用内存泄露查找工具

    6. 当发生内存错误时,比如EXC_BAD_ACCESS,可通过设置环境变量NSZombieEnabled来找出尝试向已经释放的对象发送消息的错误。在Xcode中,可以在运行应用的Schema设置中,将NSZombieEnabled环境变量设置为YES。这允许...

    iOS 捕获程序崩溃日志

    `reason`字段提供了关于异常的描述,而`name`字段则指明了异常的类型,例如`NSInvalidArgumentException`或`EXC_BAD_ACCESS`等。 除了手动捕获崩溃日志,iOS还提供了其他方式获取崩溃日志,如通过Xcode的设备和...

Global site tag (gtag.js) - Google Analytics