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 방법 을 가지 않 기 때문에 충돌 하 는 것 과 같 습 니 다.마찬가지 로 기록 되 어 있 습 니 다.총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.