en Objective-c J'ai cette fonction prototype: - (NSString *) formatSQL: (NSString *) sql, ... Je peux passer à cette fonction tout type de paramètres : NSString, NSNumber, entier, float Comment puis-je déterminer dans la fonction si un paramètre est un objet (NSString ..) ou une primitive (integer ...)? grâce BrochPirateobjective-c déterminer si le paramètre est un objet
2
A
Répondre
5
Si vous allez avoir un paramètre qui accepte plusieurs types, vous ne pouvez le faire en toute sécurité en utilisant des objets Obj-C, ce qui signifie en utilisant id
comme type. Vous ne pouvez pas en toute sécurité de se mélanger avec id
float
, integer
etc.
Si vous enveloppé tous les float
s et int
s dans NSNumber
s, vous pourriez avoir une méthode comme ceci:
- (NSString *)formatSQL:(id)obj
{
if ([obj isKindOfClass:[NSString class]]) {
// Format as a string
}
else if ([obj isKindOfClass:[NSNumber class]]) {
// Further processing will be required to differentiate between ints and floats
}
}
Il y a quelques mises en garde à l'utilisation isKindOfClass:
, mais cela devrait servir de bon point de départ.
Questions connexes
- 1. Comment déterminer si objet est un NSNumber
- 2. .NET: Comment déterminer si un objet est un objet COM?
- 3. Comment déterminer si un objet Rails est marked_for_destruction?
- 4. Déterminer si l'erreur $ .ajax est un délai
- 5. Déterminer si une variable non-objet est initialisée en C++
- 6. Déterminer si un paramètre nommé a été passé
- 7. Déterminer si un objet existe dans un plist?
- 8. Déterminer si le module Magento est activé
- 9. Déterminer si un répertoire est inscriptible
- 10. Comment déterminer si un pthread est actif?
- 11. Déterminer si un type est statique
- 12. Déterminer si aujourd'hui est le lundi
- 13. Comment déterminer si un gif est animé?
- 14. Vérifiez si le paramètre "LargeAddressAware" est actif?
- 15. Déterminer si l'utilisateur est connecté
- 16. Comment puis-je déterminer si quelque chose est un tableau ou un objet en PHP?
- 17. déterminer si uiview est affiché
- 18. test si un objet est un Enum
- 19. Comment puis-je déterminer si un paramètre de procédure stockée SQL Server a un paramètre par défaut?
- 20. Vérifie si un paramètre est un module Python?
- 21. Comment vérifier si un objet est nul
- 22. Déterminer si un chemin est un chemin réseau VBA
- 23. Comment déterminer si un groupe est un groupe de sécurité?
- 24. Déterminer si un lien est cliqué sur un WebView - iPhone
- 25. Déterminer si un élément est un Widget jQueryUI
- 26. C# - comment déterminer si un Type est un nombre
- 27. moyen efficace pour déterminer si un message est un spam?
- 28. Comment vérifier si un objet est nul
- 29. Comment vérifier si un objet est défini?
- 30. Comment puis-je déterminer à l'exécution si le style appliqué à un objet est le style par défaut?