Вопрос

Я делаю фреймворк и у меня есть этот код (conditions является 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];
    }
  }

Если value является NSString, следует добавлять кавычки, иначе коды добавлять не следует.Однако, если это не NSString, я не знаю тип данных value, так как это может быть NSNumber, NSInteger, int, float, double и т.д.я не могу просто использовать %@ или %d но я уверен, что кто-то из SO знает, как это сделать?Спасибо.

Это было полезно?

Решение

посмотри на этот.

редактировать:в вашем случае это довольно просто, поскольку nsdictionary может содержать только nsobjects.так что %@ сделает свое дело.

Другие советы

Вы можете проверить класс (kindOfClass), а затем использовать соответствующий форматтер.

например

if ( [myObj isKindOfClass:[NSString class]] )
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top