`

常见crash

阅读更多

1. 参数的默认值

  • 使用指针 需要做非空判断
  • nil 判断
  • [NSNull null]判断

NSDictionary&&NSArray

  • 代码里面很多地方使用了setObject:forKey以及其它的初始化, 如果插入nil,崩溃
  • AddObject的时候,add nil也会crash
  • objectForKey: 类型错误

数据类型错误

简单判断dictionary和array不为空,里面实际没有数据。后端的返回的数据 对类型做判断,dictionary、array

数组越界

  • objectAtIndex 取值的时候一定要做数组大小判断,防止越界取值。涉及index的时候,最好都做检查

substringWithRange/substringFromIndex/substringToIndex

涉及range的操作都需要做一下NSString长度的判断

textView.text = [textView.text substringWithRange:NSMakeRange(0, 100)];

使用delegate,Notification NSTimer 没有取消

使用delegate,Notification,NSTimer后,不使用了要注意取消掉,经常出现controller已经销毁,回调回来造成崩溃。

项目圈子、navigation delegate、collectionview 、tableview

使用不熟悉的api的时候

系统api自己不熟悉的时候,看一下api支持的最低版本,高版本的api在低版本使用的时候,会造成崩溃。

多线程操作

明确函数的生命周期,动画结束,block的使用,多线程读写,多线程函数的使用。

遍历数组的同时,又改变了数组的顺序

 

enumerateObjectsUsingBlock遍历的时候 exchangeObjectAtIndex:withObjectAtIndex insert del 的操作

分享到:
评论

相关推荐

    swift-一行代码实现各种常见Crash规避。

    Crash是任何开发者都不希望遇到的问题,它们会导致程序突然终止,用户体验下降,甚至可能导致数据丢失。本篇文章将深入探讨如何使用Swift编写一行代码来预防常见的应用程序崩溃,并提供相关工具——CrashTool-master...

    android system crash 总结

    Dalvik 队列崩溃是一种常见的 crash 问题。从 Log 中发现 Dalvik 队列崩溃,这种情况没有太好的定位方法。经过对高通原始版本测试,未发现该情况,因此根据与高通原始版本的比对排查,以及对测试操作手法过程中系统...

    Crash日志分析

    3. 可能有错误代码匹配库,自动识别常见错误并提供解决方案建议。 4. 支持批量分析,对多个Crash日志进行快速处理。 在实际使用中,我们还需要注意以下几点: 1. 确保.dSYM文件与Crash日志匹配,否则无法准确映射到...

    Crash

    1. **软件错误**:软件错误是导致系统崩溃的常见原因。编程错误,如空指针引用、数组越界、死锁、资源泄漏等,都可能导致程序崩溃。此外,软件设计缺陷,如不适当的异常处理,也可能使程序在遇到特定条件时崩溃。为...

    Linux Kernel Crash Debug

    Diskdump是一种常见的方法,它会在硬盘上保存内核崩溃的详细信息。为了启用Diskdump,需要配置内核启动参数,比如设置`crashkernel`选项,然后配置相应的服务或守护进程来触发和保存崩溃转储。 总结来说,Linux内核...

    CRASH

    5. **硬件故障**:虽然软件问题是常见的原因,但硬件问题也可能导致“CRASH”。比如,内存条故障、硬盘错误或驱动程序不兼容等。 6. **操作系统内核**:操作系统的稳定性也直接影响到程序的运行。内核崩溃可能导致...

    捕捉crash及crashdemo

    常见的Crash类型包括NullPointerException、ArrayIndexOutOfBoundsException等。 2. **捕获异常**:在Java中,我们可以通过try-catch语句块来捕获异常。当代码块内发生异常时,catch块可以执行相应的处理逻辑,如...

    解决iOS中常见的几种Crash1

    本文主要探讨了在iOS中常见的几种Crash类型及其无侵入式的解决方案,特别是利用Method Swizzling来预防这些问题。 首先,数组越界是iOS开发中一个常见的崩溃原因。当尝试访问数组中不存在的索引时,程序会崩溃。为...

    【iOS】crash 分析

    iOS开发中奔溃是非常恶心,但是我们如何能够做到Crash分析以及收集处理,恰恰体现了一个高质量iOS开发人员的能力!...知识点:1-常见奔溃简析 2-exception&signal异常处理 3-堆栈分析收集 4-crash起死回生

    ios Crash异常捕捉demo

    `SIGABRT`是一种常见的信号,通常与程序异常终止相关联,尤其是在Objective-C中遇到未捕获的异常时。 ### 1. `NSException`异常处理 `NSException`是Objective-C中的基础异常类,用于表示运行时错误。当程序执行...

    android crash 测试 定位

    在进行Android应用开发和测试的过程中,崩溃(crash)是一个不可避免的问题。崩溃是指应用程序因遇到严重错误而无法继续运行,最终导致意外终止。在软件测试领域,尤其是在移动应用的测试中,能够有效地识别和定位...

    android crash后重启界面

    常见的崩溃原因包括空指针异常(NullPointerException)、类型转换异常(ClassCastException)等。系统会生成一个包含崩溃详细信息的堆栈跟踪(stack trace),这对于开发者查找和修复问题至关重要。 二、崩溃处理...

    iOS系统Crash文件分析方法参考.pdf

    五、常见的崩溃原因 崩溃的原因可能有很多,例如内存泄露、空指针、数组越界等。通过对崩溃日志的分析,可以确定崩溃的原因和解决方案。 六、崩溃日志的格式 崩溃日志的格式通常如下所示: Thread 0 Crashed: 0 ...

    Android Native Crash分析详解

    Native Crash总是由内核发出特定的signal触发,常见的signal类型及其含义如下: 1. **SIGSEGV(signal 11)**:非法地址访问。进程尝试访问未分配给其的内存地址或试图修改不可写的内存区域。 2. **SIGBUS(signal ...

    A Quick Overview of Linux Kernel Crash Dump Analysis

    在IT行业中,系统崩溃是一种常见的问题,尤其是在复杂的服务器环境中。当一个Linux系统发生崩溃时,如何有效地诊断并找到根本原因至关重要。本文将对Linux内核崩溃转储分析进行快速概览,包括必要的先决条件、安装...

    crash.cli-1.3.0-beta11.zip

    在压缩包 "minlog-master" 中,"master" 通常指的是主要或默认的分支,这在Git等版本控制系统中是常见的,表示这是项目的最新稳定代码。该目录可能包括以下组成部分: 1. **源代码**:Java源文件,通常位于 "src/...

    iOS crash工具

    三、常见iOS crash工具 1. Xcode的Instruments:Xcode自带的性能分析工具Instruments也包含了一个强大的Crash Reporter,可以分析并显示崩溃日志,同时进行符号化。 2. Crashlytics:由Firebase提供的服务,能够...

    android crash错误

    在Android开发过程中,"android crash错误"是一个常见且重要的主题。当应用程序运行时遇到未捕获的异常,系统默认会弹出一个不友好的错误对话框,这可能会打断用户的使用体验,而且提供的错误信息通常对普通用户来说...

    基于Java的开发的SHELL CRaSH.zip

    8. **使用场景**:常见的使用场景包括数据库管理、监控JVM指标、执行定时任务、热更新配置等。 总之,"基于Java的开发的SHELL CRaSH.zip"提供的工具可以帮助Java开发者创建更健壮、更易维护的应用程序,通过提供...

    Crash分析

    在IT行业中,Crash分析是解决软件稳定性问题的关键环节,特别是在Android开发中,ListView作为常用的数据展示组件,其Crash问题尤为常见。本篇将基于提供的博文链接(由于实际链接无法访问,此处将进行理论性解析)...

Global site tag (gtag.js) - Google Analytics