崩溃统计

一般的第三方统计都会有crash统计,来看app的崩溃信息、崩溃原因。如果想要自己实现一个怎么办?没关系,IOS SDK中提供了一个现成的函数 NSSetUncaughtExceptionHandler 用来做异常处理

NSSetUncaughtExceptionHandler(&UncaughtExceptionHandler);//在程序启动时收集崩溃信息的调用,里面是一个C语言的函数

//C语言函数的实现,收集到崩溃信息的处理
void GMMLUncaughtExceptionHandler(NSException*exception){
    NSArray * callStack = [exception callStackSymbols];
    NSString * reason = [exception reason];
    NSString * name = [exception name];
    NSString * content = [NSString stringWithFormat:@"======异常错误报告======\nname:%@\nreason:\n%@callStackSymbols:\n%@",name,reason,[callStack componentsJoinedByString:@"\n"]];
    NSMutableDictionary * muDict = [NSMutableDictionary dictionary];
    [muDict setObject:@"event" forKey:@"t"];
    [muDict setObject:@"_crash" forKey:@"ea"];
    [muDict setObject:@"_crash" forKey:@"ec"];
    [muDict setObject:@"_crash" forKey:@"el"];
    [muDict setObject:@"20000" forKey:@"caid"];
    
    [[NSUserDefaults standardUserDefaults] setObject:muDict forKey:@"CRASH"];
    //手动调用default保存
    [[NSUserDefaults standardUserDefaults] synchronize];
}

代码也不需要解释了吧,如果崩溃就会执行这个C语言函数,然后保存到NSUserDefaultsuserdefualt里面。可以在下次程序启动的时候去发送这些信息。

但是功能非常有限,而引起崩溃的大多数原因如:内存访问错误,重复释放等错误就无能为力了,因为这种错误它抛出的是Signal,所以必须要专门做Signal处理。(之后更新···)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值