/ / EXC_BAD_ACCESS podczas pobierania widoków z kontekstu przejścia na iPhonie 4 - iOS, objective-c, iphone, xcode

EXC_BAD_ACCESS podczas pobierania widoków z kontekstu przejścia na iPhone 4 - ios, target-c, iphone, xcode

Mam następujący kod, który działa idealniena moim iPhonie 5 i wszystkich symulatorach iPhone'a, ale ulega awarii na moim iPhonie 4. Otrzymuję EXC_BAD_ACCESS w ostatnim wierszu, w którym przekazuję UITransitionContextToViewKey do mojego kontekstu przejścia.

Mam czystą analizę i kompilację, a to samo dzieje się w przypadku UITransitionContextFromViewKey i UITransitionContextToViewKey.

Mój iPhone 4 działa w systemie iOS 7.1.2, mój cel wdrożenia to 7.0, ukierunkowany podstawowy zestaw SDK wersji 8.0.

Czy ktoś wie, co tu robić? dzięki.

- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
// get transition parameters from context
UIView *containerView = transitionContext.containerView;
UIViewController *destinationViewController =
[transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];

if ([destinationViewController.title isEqualToString:@"ListController"]) {

// get source and destination views
UIView *sourceViewSnapshot = [self.view snapshotViewAfterScreenUpdates:YES];

UIView *destinationView = [transitionContext viewForKey:UITransitionContextToViewKey]; // EXC_BAD_ACCESS

// ...
}

Odpowiedzi:

1 dla odpowiedzi № 1

Od dokumentacja:

UITransitionContextToViewKey

Dostępne w iOS 8.0 i nowszych.

Nie możesz uruchomić tego kodu w systemie iOS 7

Jeśli chcesz zachować zgodność z tą wersją systemu, możesz w tym momencie dodać sprawdzanie wersji systemu w środowisku wykonawczym i rozgałęzić się do kodu zgodnego z systemem iOS 7


6 dla odpowiedzi nr 2

Metoda viewForKey to iOS 8 i nowsze, ale metoda viewControllerForKey jest obsługiwana w iOS 7. Niewielka zmiana w kodzie powoduje wyświetlenie w iOS 7:

   UIView *destinationView = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey].view;