iOS 개발 학습 모니터링 프로그램의 붕괴 횟수 상세 설명

머리말
본 고 는 주로 iOS 가 프로그램 붕괴 횟수 를 어떻게 모니터링 하 는 지 에 관 한 내용 을 소개 하고 여러분 에 게 참고 학습 을 제공 하 는 것 입 니 다.다음은 더 이상 말 하지 않 고 상세 한 소 개 를 하 겠 습 니 다.
코드 를 쓰기 전에,우 리 는 먼저 앱 이 실행 되 는 절 차 를 알 아야 한다.
프로그램 시작 시 순서대로 호출
      1.시작 페이지 먼저 실행
      2. - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions      3. - (void)applicationDidBecomeActive:(UIApplication*)application프로그램 이 백 엔 드 로 물 러 나 순서대로 호출 됨
      1. - (void)applicationWillResignActive:(UIApplication*)application      2. - (void)applicationDidEnterBackground:(UIApplication*)application프로그램 이 백 스테이지 에서 프론트 데스크 로 돌아 와 순서대로 호출 되다.
      1. - (void)applicationWillEnterForeground:(UIApplication*)application      2. - (void)applicationDidBecomeActive:(UIApplication*)application프로그램 이 죽 으 면 순서대로 호출 됩 니 다.
      1. - (void)applicationWillResignActive:(UIApplication*)application      2. - (void)applicationDidEnterBackground:(UIApplication*)application      3. - (void)applicationWillTerminate:(UIApplication*)application프로그램 충돌 플래시 는 어떤 방법 도 사용 하지 않 습 니 다.
프로그램 이 죽 임 과 붕괴 사이 의 차이 에 따라 프로그램 붕괴 횟수 를 측정 하고 기록 하 는 방법 을 쓸 수 있다.
사고의 방향 을 실현 하 다.
프로그램 이 시 작 될 때 샌 드 박스 에 저 장 된 충돌 표지 인 isCrash 를 YES 로 설정 하고 프로그램 이 종료 할 때 isCrash 를 NO 로 변경 합 니 다.
코드:
프로그램 시작

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 [self recordCrashCount];

}
프로그램 종료

- (void)applicationWillTerminate:(UIApplication *)application {

 [[NSUserDefaults standardUserDefaults] setObject:@(NO) forKey:@"JJ_isCrash"];
 [[NSUserDefaults standardUserDefaults] synchronize];
}

//           

- (void)recordCrashCount{

 BOOL isCrash = [[[NSUserDefaults standardUserDefaults] valueForKey:@"JJ_isCrash"] boolValue];

 [[NSUserDefaults standardUserDefaults] setObject:@(YES) forKey:@"JJ_isCrash"];

 if (isCrash == YES) {

  //            
  NSNumber *crashNum = [[NSUserDefaults standardUserDefaults] valueForKey:@"JJ_crashCount"];

  NSInteger count =0;

  if (crashNum != nil) {

   count = [crashNum integerValue];

  }

  count++;

  //                

  if (count >= crashCount) {

   NSLog(@"    ");

   //             0
   [[NSUserDefaults standardUserDefaults] setObject:@0 forKey:@"JJ_crashCount"];

   // 5          
   [self performSelector:@selector(showAlertAction)withObject:nil afterDelay:5];
   return;
  }

  //       3           
  crashNum = [NSNumber numberWithInteger:count];
  [[NSUserDefaults standardUserDefaults] setObject:crashNum forKey:@"JJ_crashCount"];
 }
}

//       

- (void)showAlertAction{

UIAlertController*alert

=

[UIAlertControlleralertControllerWithTitle:@"  "message:@"           ,            !" preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction*sure = [UIAlertAction actionWithTitle:@"  " style:UIAlertActionStyleDefaulthandler:nil];

[alert addAction:sure];

[self.window.rootViewController presentViewController:alert animated:YES completion:nil];

}
여러분 이 직접 사용 하 는 것 을 편리 하 게 하기 위해 서 저 는 이미 실현 코드 를 작은 프레임 워 크 로 봉 하여 코드 한 마디 만 사용 하면 호출 할 수 있 습 니 다.
github 다운로드 주소:https://github.com/jiangbin1993/JJRecordCrash
로 컬 다운로드 주소:http://xiazai.jb51.net/201707/yuanma/JJRecordCrash(jb51.net).rar
사용 방법:
app delegate.m 에서 헤더 파일 가 져 오기\#import"JJJrecordCrash.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 //   crashCount         block    
 [[JJRecordCrash shareInstance] recordCrashWithCrashCount:2 handle:^{
  //                , :           
  NSLog(@"   ");
 }];

 return YES;
}
메모:디 버 깅 을 할 때 프로그램 실행 중 xcode 를 사용 하여 프로그램 을 다시 실행 합 니 다.4.567914 방법 을 가지 않 기 때문에 충돌 하 는 것 과 같 습 니 다.마찬가지 로 기록 되 어 있 습 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기