2017-08-25 2 views
0

Je travaille avec des étiquettes pour les objets sur l'écran en utilisant viewWithTag() qui a besoin d'un Int et aussi UITapGestureRecognizer fournira le tag comme Int. Je garde une trace du statut de mes objets dans les données de base, mais les données de base ne supportent pas Int (seulement Int16 - Int64). C'est dommage maintenant je dois convertir tout le temps en arrière et en avant, mais Ok, ainsi soit-il. Ma question est quel est le meilleur choix dans les données de base pour stocker mon Int? Il est très peu probable qu'il dépassera les 1000.Pourquoi les données de base n'ont pas de type Int? Alors, quel est le meilleur choix entre Int16 et Int64 si j'ai un Int?

NB, il devient encore plus drôle: comme je veux rechercher les données de base pour mon tag, je dois le chercher comme une chaîne malgré mon type de base de données est Int32

+1

Si elle ne dépasse pas 1000, Int16 est très bien. Mais il semble étrange que vous ayez besoin de persister les balises de vue (qui sont censées être une pure présentation et ne devraient probablement pas être étroitement liées aux identificateurs "objet métier") – Thilo

+1

@Thilo Je ne vois pas d'autre moyen de "se souvenir" f.i. l'icône que l'utilisateur a choisi ou les coordonnées où il a été laissé glisser quand l'utilisateur quitte l'application et je veux que l'objet soit au même endroit après le démarrage – Heki

+0

* "... Je dois le rechercher en tant que chaîne malgré mon type Les données de base sont Int32. "** Pourquoi feriez-vous cela? Ça n'a aucun sens. –

Répondre

1

Si vous vous attendez à ce qu'il soit toujours inférieur à 1000, utilisez Int16. Avec cela, vous pouvez toujours stocker jusqu'à 2^16 - 1