зареждането на различен сценарий причинява грешка

Опитвам се да заредя различен сценарий, но получавам тази грешка Очаква се прозорците на приложенията да имат контролер за изглед на root в края на стартирането на приложението. Може ли някой да ми помогне

- (UIStoryboard *)grabStoryboard {

    UIStoryboard *storyboard;

    // detect the height of our screen
    int height = [UIScreen mainScreen].bounds.size.height;

    if (height == 480) {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_4" bundle:nil];
        // NSLog(@"Device has a 3.5inch Display.");
    }
    if(height == 568)
    {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_5" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }
    if(height == 667)
    {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_6" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }

    if(height == 736)
    {
        storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }

    return storyboard;
}

person Eunice    schedule 19.05.2015    source източник
comment
Грешката почти сигурно се крие във функцията за стартиране на приложението ви във вашия делегат на приложение. Публикувайте и това   -  person chedabob    schedule 19.05.2015
comment
Като странична бележка, наистина не трябва да има причина да зареждате различен сценарий за всеки размер на екрана на iPhone. Класовете с автоматично оформление и размер могат да се справят с това по много по-елегантен и управляем начин...   -  person Yann Bodson    schedule 17.08.2016


Отговори (2)


Получавате тази грешка, защото компилаторът вижда случая, когато вашата функция може да върне неинициализирана променлива на сценария. Може да се случи, ако нито едно от изявленията if не е вярно. Така че е по-добре да пренапишете тази функция, така че винаги да връща инициализирана променлива на сценария. Моето предложение е да промените начина за определяне на модела на устройството. Разгледайте тази публикация за подсказка.

person salabaha    schedule 19.05.2015

мисля, че един или повече от вашите сторибордове нямат входна точка, не забравяйте да ги проверите всички. можете да проверите официалния документ тук входна точка за сценария

person MedAmine.Rihane    schedule 16.08.2016