Domanda

Sto facendo un quadro e non ho questo codice (conditions è 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];
    }
  }

Se il value è un NSString, dovrebbero essere aggiunte citazioni, altrimenti non dovrebbero essere aggiunti i codici. Tuttavia, se non un NSString, non so il tipo di dati value, come potrebbe essere NSNumber, NSInteger, int, float, double, ecc ... non posso usare %@ o %d ma sono sicuro che qualcuno su SO sa come fare questo? Grazie.

È stato utile?

Soluzione

di dare un'occhiata a questo .

modifica: nel tuo caso è abbastanza facile, dal momento che può contenere solo NSDictionary nsobjects. così% @ farebbe il trucco.

Altri suggerimenti

Si potrebbe verificare la classe (kindOfClass) e quindi utilizzare appropriati formattatore.

per es.

if ( [myObj isKindOfClass:[NSString class]] )
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top