stringWithFormat: avec inconnu datatype
-
27-09-2019 - |
Question
Je fais un cadre et j'ai ce code (conditions
est un NSDictionary):
for (NSString *key in conditions) {
id value = [[conditions valueForKey:key] retain];
// Check if number or string
if ([value class] == [NSString class]) {
conditionsString = [NSString stringWithFormat:@"%@='%@' ", key, value];
} else {
conditionsString = [NSString stringWithFormat:@"%@=%@ ", key, value];
}
}
Si le value
est une NSString, citations devraient être ajoutées, sinon les codes ne doivent pas être ajoutés. Cependant, sinon une NSString, je ne sais pas le type de données value
, car il pourrait être NSNumber, NSInteger, int, float, double, etc ... Je ne peux pas utiliser %@
ou %d
mais je suis sûr que quelqu'un sur le SO sait comment faire cela? Merci.
La solution
jetez un oeil à cette .
edit: dans votre cas, il est assez facile, car NSDictionary ne peut contenir que nsobjects. si% @ ferait l'affaire.
Autres conseils
Vous pouvez vérifier la classe (kindOfClass), puis utiliser formatter approprié.
par exemple.
if ( [myObj isKindOfClass:[NSString class]] )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow