OC中 数组的addObject: 方法在任何一个类中都有可能会被调用,如果在数组中插入了一个 nil值而导致系统崩溃,如何判断是在哪个类中调用引起的呢?

解决方案 »

  1.   

    打个全局的短点,crash的时候,会直接定位到崩溃的代码
      

  2.   

    在AppDelegate的didFinishLaunchingWithOptions方法中加入下面这行代码://在程序启动时创建异常捕获监听,用来处理程序崩溃时的回调动作
        NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);然后实现括号中的方法,就可以查看错误信息:
    //异常处理函数
    void UncaughtExceptionHandler(NSException *exception) {
        NSArray *arr = [exception callStackSymbols];//得到当前调用栈信息
        NSString *reason = [exception reason];//非常重要,就是崩溃的原因
        NSString *name = [exception name];//异常类型
        NSLog(@"exception type : %@ \n crash reason : %@ \n call stack info : %@", name, reason, arr);
    }