Splash screen animation is not supporting with Xco

2019-03-21 11:56发布

问题:

In my application i am using the below code to show an animated splash screen. App working fine in Xcode-6.4(iOS 8), but coming to Xcode-7GM version(iOS9) app crashes with an error.

window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    imageArray = [[NSMutableArray alloc] initWithCapacity:IMAGE_COUNT];
    // Build array of images, cycling through image names
    for (int i = 1; i <= IMAGE_COUNT; i++)
     [imageArray addObject:[UIImage imageNamed:
                               [NSString stringWithFormat:@"image__%d.png",i]]];
    animationImageView  = [[UIImageView alloc]  initWithFrame:self.window.bounds];
    animationImageView  .animationImages=[NSArray arrayWithArray:imageArray];
    // One cycle through all the images takes 3.5 seconds
    animationImageView .animationDuration = 3.5;
    // Repeat forever
    animationImageView  .animationRepeatCount = 0;
    // Add subview and make window visible
    [window addSubview:animationImageView  ];
    [window makeKeyAndVisible];
    // Start it up animations
    [animationImageView   startAnimating];
    // Wait 3.5 seconds, then stop animation
   [self performSelector:@selector(stopAnimation) withObject:nil afterDelay:3.5];`

This is the error message what i am getting while using Xcode-7GM:

Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:3294

回答1:


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

change to


    [window setFrame:[[UIScreen mainScreen] bounds]];



回答2:

It sounds like you're trying to do some networking. In iOS 9, by default, all network communication must be secure. If you are trying to do an http: request, it will fail; you must use https: (unless you switch this feature off in your Info.plist).



回答3:

I had the same issue, it has been solved by removing [window makeKeyAndVisible];.

The self window needs to be set as root view controller in your didFinishLaunchingWithOptions: :
[self.window setRootViewController:navController];



回答4:

For me like jonmo, this error was the result of not defining rootViewController prior to exiting didFinishLaunchingWithOptions.

Doing so resolved this issue for me.

Prior to Xcode 7, it was just a warning now it seems to be a hard stop



回答5:

In my case, the solution to this error message was updating an included CocoaPods dependency called Loopback (that I believe adds an extra UIWindow to the app.)



回答6:

I had the same issue, It has been solved by replacing the below line of code in Appdelegate.m

[window addSubview:viewController.view];

with

[window setRootViewController:viewController];