2017-09-27 20 views
14

Kiedy przekierowanie z głównej viewController do innego viewController dostaję tenDlaczego otrzymuję Lazy ładowanie NSBundle MobileCoreServices.framework?

błąd:

Lazy loading NSBundle MobileCoreServices.framework,

Loaded MobileCoreServices.framework,

System group container for systemgroup.com.apple.configurationprofiles path is /Users/develop/Library/Developer/CoreSimulator/Devices/083C0102-C85F-463A-96F4-CA1B9AC7919D/data/Containers/Shared/SystemGroup/ systemgroup.com.apple.configurationprofiles

Mój kod jest ...

Appdelegate.m

if (![[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) { 
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
    NSLog(@"Launched first time"); 
} else { 
    NSLog(@"Already launched"); 
    [self getData]; 
} 

viewDidLoad

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) { 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     LoginPageViewController *lpvc = [self.storyboard instantiateViewControllerWithIdentifier:@"LPVC"]; 
     [self.navigationController pushViewController:lpvc animated:NO]; 
    }); 
} else { 
    // My code... 
} 
+0

Kiedy komentowanie tej linii to działa prawidłowo .. [self.navigationController pushViewController: lpvc animowany: NO]; – iOS

+0

po co uzyskiwać główny wątek w viewDidLoad? , Myślę, że viewDidLoad się znajduje na głównym wątku –

+0

Chcę przekierować na stronę logowania przy pierwszym uruchomieniu ... możesz podać jakieś rozwiązanie dla mnie – iOS

Odpowiedz

19

Komunikat masz to od Xcode 9. Równowartość wiadomości w Xcode 8 będzie:

[MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/develop/Library/Developer/CoreSimulator/Devices/083C0102-C85F-463A-96F4-CA1B9AC7919D/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles

Zanotować [MC]: Jest to komunikat systemowy. Ta wiadomość może być bezpiecznie zignorowana.

Aby ukryć tego rodzaju wiadomości, skorzystaj z rozwiązania z https://stackoverflow.com/a/42140442/1033581:

  1. Pod produkt> Schemat> Edytuj schemat ...> Uruchom, ustawić zmienną środowiskową OS_ACTIVITY_MODE do $ {DEBUG_ACTIVITY_MODE} tak to wygląda to:

OS_ACTIVITY_MODE environment variable to ${DEBUG_ACTIVITY_MODE}

  1. przejdź do ustawień kompilacji projektu, a następnie kliknij przycisk +, aby dodać ustawienie User-Defined nazwie Debu G_ACTIVITY_MODE. Rozwiń to ustawienie i kliknij przycisk + obok opcji Debuguj, aby dodać wartość specyficzną dla platformy. Wybierz listę rozwijaną i zmień ją na "Any iOS Simulator SDK". Następnie ustaw jego wartość na "default", więc wygląda to tak:

User-Defined setting DEBUG_ACTIVITY_MODE

+0

Możesz po prostu przekierować go do odpowiedzi, o której wspomniałeś: https://stackoverflow.com/a/39573801/465235 –

+3

@ YassineElBadaoui, nie, użycie 'disable' nie jest tym, co polecam. Polecam 'default', aby uniknąć utraty własnego loginu NSLog na Xcode 9. –

0

kod aktualizacji w aplikacji delegata.

if (![[NSUserDefaults standardUserDefaults] boolForKey:"HasLaunchedOnce"]){ 
     LoginPageViewController *lpvc = [self.storyboard instantiateViewControllerWithIdentifier:@"LPVC"]; 
     self.window.rootViewController = lpvc; 
     NSLog(@"Launched first time"); 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 

}else { 
     MainViewController *mainVC = [self.storyboard instantiateViewControllerWithIdentifier:@"MainVC"]; 
     self.window.rootViewController = mainVC; 
    NSLog(@"Already launched"); 
    [self getData]; 
} 
+0

Rozwiązanie 1 powoduje ten sam problem. W przypadku rozwiązania 2, w którym należy wpisać ten kod, – iOS

+0

sprawdź zaktualizowaną odpowiedź. –

+0

Wchodzę do aplikacji. Nie znaleziono pliku samoodkrywania. – iOS