2016-11-28 2 views
0

Je réalise qu'il s'agit d'une question générique. J'ai posé une question précise et je n'ai pas eu de réponse.Causes possibles d'un comportement différent dans iOS 8 et iOS 9 pour le même code

https://stackoverflow.com/questions/40854131/collection-view-ios-8-bug

votre expérience en tant que développeur iOS, ce qui pourrait être la cause d'un comportement différent dans iOS 8 et iOS 9 pour même code. J'ai un bug que je n'arrive pas à comprendre et je cherchais des raisons qui pourraient conduire à un comportement différent pour le même code.

Je suppose que j'utilise peut-être une fonctionnalité qui n'est pas disponible dans iOS 8, mais qui est disponible dans iOS 9, mais ne xcode pas, avertir si je fais cela?

Dans quels cas avez-vous fait face à cela dans votre code-base? Est-ce parce que j'utilise swift et que ios 8 le supporte assez bien?

Je ne peux pas comprendre la raison pour laquelle cela pourrait arriver.

Répondre

2

ce qui pourrait être la cause d'un comportement différent dans iOS 8 et iOS 9 pour même code

Il n'a rien à voir avec Swift. La cause serait que iOS 8 n'est pas iOS 9 (et vice versa). Cela signifie exactement qu'ils pourraient ne pas répondre de manière identique au même code. Cela n'a rien à voir avec les fonctionnalités disponibles ou non. Une même API peut se comporter différemment d'un système à l'autre. C'est juste un fait dont vous devez vous habituer.

Juste pour donner quelques exemples rudimentaires (ce ne sont que certains des nombreux problèmes que j'ai cogné dans le passé):

  • Définition d'une œuvre de UIProgressView progressImage dans iOS 6, n'a pas d'effet dans iOS 8, et travaille à iOS 9.

  • Définition possibleTitles œuvres d'un UIBarButtonItem dans iOS 8, mais n'a pas d'effet dans iOS 9.

  • a chargement automatique d'une plume éponyme ne fonctionne pas dans le code Swift dans iOS 8, mais il fonctionne dans iOS 9 (voir pour mon exemple ma réponse here). UISwitch onImage et offImage fonctionnent dans iOS 6 mais dans aucun système par la suite - bien qu'ils n'aient jamais été dépréciés ou supprimés de l'API.

  • CNContactViewController forUnknownContact détruit l'interface iOS 9 mais fonctionne dans iOS 10.

Programmation pour plusieurs systèmes est dur. Ce genre d'inconduite non documentée est un exemple de pourquoi. Ne pas attendre le même code pour fonctionner de la même manière dans différents systèmes.

(Le même code peut même donner des résultats différents entre les mises à jour de version mineures.) Dans this, j'aborde un problème qui se pose uniquement dans iOS 8.3.)

+0

merci de me donner quelques précisions à ce sujet. Et ils disent que Android est fragmenté :). – nnrales