строкаWithFormat:с неизвестным типом данных
-
27-09-2019 - |
Вопрос
Я делаю фреймворк и у меня есть этот код (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]] )
Не связан с StackOverflow