Mon application a été publié récemment, mais il prend en charge iOS 8.2.addTarget de contrôle segmentée() app iOS 9.0 ci-dessous s'écraser
Malheureusement, au-dessous iOS 9.0 tapotant un contrôle segmenté qui a été ajoutée l'application se bloque programme sans message d'erreur dans la console.
Je crois que la ligne où la cible est ajoutée peut provoquer le problème:
La ligne suivante est placée à l'intérieur du init() de ma cellule personnalisée, le contrôle segmentée est une instance var et appelle une méthode son contrôleur de vue parent
segmentedControl.addTarget(ListViewController(), action: #selector(ListViewController.segmentedControlToggled(segmentedControl:)), for: .valueChanged)
Encore une fois, cela fonctionne comme prévu jusqu'à iOS 9.0.
L'installation fonctionne très bien, il se bloque une seule fois le contrôle segmentée est exploité.
Faut-il une autre syntaxe pour le sélecteur?
Merci pour vos suggestions!
Merci beaucoup, Cristik, j'ai oublié cela. Je l'ai changé et ça a réglé le problème! Cependant, je suis toujours perplexe quant à la raison pour laquelle cela fonctionne dans toutes les versions au-dessus de 8.4, mais pas ci-dessous. – nontomatic
@nomatique Il se peut que la cible soit attrapée (retenue) par d'autres objets qui la maintiennent indirectement en vie. Et iOS 8.3 et ci-dessous n'a pas ces objets. Fondamentalement, votre application fonctionne bien à partir de 8.4 en raison de certains détails de mise en œuvre de UIKit, mais comme ceux-ci sont hors de votre contrôle, vous feriez mieux de garder une référence solide pour vous-même. – Cristik
Merci pour le suivi, ça a du sens, merci! – nontomatic