stringWithFormat: с неизвестным типом данных - PullRequest
2 голосов
/ 03 октября 2010

Я делаю фреймворк, и у меня есть этот код (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 является строкой NSS, кавычки должны быть добавлены, иначе коды не должны быть добавлены. Однако, если не строка NSSt, я не знаю тип данных value, так как это может быть NSNumber, NSInteger, int, float, double и т. Д. Я не могу просто использовать %@ или %d но я уверен, что кто-то на SO знает, как это сделать? Спасибо.

Ответы [ 2 ]

4 голосов
/ 03 октября 2010

взгляните на это .

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

0 голосов
/ 03 октября 2010

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

например,

if ( [myObj isKindOfClass:[NSString class]] )
...