Pregunta

Estoy haciendo un marco y tengo este código (conditions es 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 el value es un NSString, deben añadirse las cotizaciones, de lo contrario no debe añadirse códigos. Sin embargo, si no un NSString, no sé el tipo de datos de value, ya que podría ser NSNumber, NSInteger, int, float, double, etc ... No puedo usar %@ o %d pero estoy seguro de que alguien el SO sabe cómo hacer esto? Gracias.

¿Fue útil?

Solución

echar un vistazo a este .

editar: en su caso es bastante fácil, ya que sólo contienen lata NSDictionary nsobjects. así% @ haría el truco.

Otros consejos

Se pudo comprobar la clase (kindOfClass) y luego utilizar formateador apropiado.

por ejemplo.

if ( [myObj isKindOfClass:[NSString class]] )
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top