Сбой приложения при запуске iOS 10

#ios #xcode8 #appdelegate #nib #rootviewcontroller

#iOS #xcode8 #appdelegate #перо #rootviewcontroller

Вопрос:

Я сталкиваюсь с проблемой, подобной сбою приложения при запуске, я пытаюсь перейти к RootViewController, но приложение постоянно вылетает, пожалуйста, проверьте приведенный ниже отчет о сбое и, в частности, сбой приложения только в iOS 10

  • Есть предложения

Не удалось загрузить перо в bundle: ‘NSBundle (загружен)’ с именем ‘RootViewController’ 2016-10-21 18:59:45.588010 Dragon Inn[796:175032] Полная трассировка: 0 Dragon Inn 0x00000001000518f0 -[StackTracer generateTraceWithMaxEntries:] 104 1 Dragon Inn 0x00000001000a5ac4 HandleException 120 2 CoreFoundation 0x000000018975c540 644 3 libobjc.A.dylib 0x0000000188194838 112 4 libc abi.dylib 0x000000018818366c 16 5 libc abi.dylib 0x0000000188183234 __cxa_retrow 144 6 libobjc.A.dylib 0x000000018819471c objc_exception_retrow 44 7 CoreFoundation 0x00000001896360bc CFRunLoopRunSpecific 560 8 графических сервисов 0x000000018b0b9198 GSEventRunModal 180 9 UIKit 0x000000018f610628 684 10 UIKit 0x000000018f60b360 UIApplicationMain 208 11 Dragon Inn 0x000000010007ff14 main 124 12 libdyld.dylib 0x00 2016-10-21 18:59:51.327601 Dragon Inn[796:175032] Сжатая интеллектуальная трассировка: HandleException __cxa_retrow objc_exception_retrow CFRunLoopRunSpecific GSEventRunModal UIApplicationMain main libc abi.dylib: terminate_handler неожиданно выдал исключение

APPDELEGATE.m

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

    appUrl = @"";

    strCurrentCity = @"";
    dBI = [[databaseInteraction alloc]init];
    [databaseInteraction check_Create_DB];
    isRootPushed = NO;
    self.checkForNewVersion = TRUE;

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];


    LoadingViewController *masterViewController = [[LoadingViewController alloc] initWithNibName:@"LoadingViewController" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    [self.navigationController setNavigationBarHidden:YES animated:NO];
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];



    //Crash Report

    [[CrashManager sharedInstance] manageCrashes];
    [[CrashManager sharedInstance] setCrashDelegate:self selector:@selector(notifyException:stackTrace:)];
    NSString* errorReport = [CrashManager sharedInstance].errorReport;
    if(nil != errorReport) {
        NSDictionary *dic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObject:[NSString stringWithFormat:@"Dragon Inn : %@", errorReport]] forKeys:[NSArray arrayWithObject:@"errorText"]];

        NSString *post = [dic JSONRepresentation];
        isJson = TRUE;
        setLoderDown = FALSE;
        req = [[Request alloc] initWithURLByPost:NSLocalizedString(@"crash-report", nil) PostString:post withMethod:@"POST" withDelegate:self withTag:100];
    }

    //=================

    if(devicetoken == nil || devicetoken == NULL) {
        devicetoken = @"";
    }

    //====================



    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDistanceFilter:kCLDistanceFilterNone];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyKilometer];
    [locationManager startUpdatingLocation];
    [locationManager setDelegate:self];

    if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
        [locationManager requestWhenInUseAuthorization];
        //[locationManager requestAlwaysAuthorization];
    }



    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    else
    {
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
    }

    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;

    return YES;
  

}

Комментарии:

1. Пожалуйста, поделитесь кодом методов didFinishLaunch вашего AppDelegate. Я думаю, что он пытается загрузить «RootViewController», которых не существует

2. @Wolverine проверьте обновленный ответ

3. Есть ли у вас какие-либо ссылки на RootViewController в остальной части приложения? Похоже, что это не связано с тем, что находится в делегате приложения, если вы недавно не переименовали LoadingViewController , и в этом случае обязательно очистите папку сборки и повторите попытку.

4. @dlbuckley сбой только в iOS 10. : (в iOS9 работает нормально

5. Когда вы говорите «я пытаюсь перейти к RootViewController», какой код вы используете для этого?