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.

Était-ce utile?

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
scroll top