traitCollectionDidChange is failing second time it is called
<p>I have the following <code>traitCollectionDidChange</code>.</p>

<pre><code>- (void) traitCollectionDidChange:(UITraitCollection *)previousTraitCollection{
    [super traitCollectionDidChange:previousTraitCollection];

    if (previousTraitCollection.horizontalSizeClass != self.traitCollection.horizontalSizeClass){
        NSInteger horizontalClass = self.traitCollection.horizontalSizeClass;
        NSInteger verticalClass = self.traitCollection.verticalSizeClass;
        switch(horizontalClass){
            case UIUserInterfaceSizeClassCompact:
                if (verticalClass == UIUserInterfaceSizeClassRegular){
                    // Setup for iPhone
                }
                break;
            case UIUserInterfaceSizeClassRegular:
                if (verticalClass == UIUserInterfaceSizeClassRegular){
                    // Setup for iPad
                }
                break;

            default:
                break;
        }
    }
}
</code></pre>

<p><code>Update</code>: It fails even when just turning the iPad. Anytime the methode is getting called again it fails with: <code>if (previousTraitCollection.horizontalSizeClass != self.traitCollection.horizontalSizeClass){</code> is giving an error: [NSConcreteNotification horizontalSizeClass]: <code>unrecognized selector sent to instance</code>. As the <code>previousTraitCollection</code> is <code>nil</code>.</p>

<p>Do you know why it is failing the second time?</p>