StringWithFormat: com Datatype desconhecido
-
27-09-2019 - |
Pergunta
Estou fazendo uma estrutura e tenho esse código (conditions
é um 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 o value
é uma NSString, as cotações devem ser adicionadas; caso contrário, os códigos não devem ser adicionados. No entanto, se não for um nsstring, não sei o tipo de dados de value
, como poderia ser nsnumber, nsinteger, int, flutuar, duplo, etc ... Eu não posso simplesmente usar %@
ou %d
Mas tenho certeza de que alguém sabe como fazer isso? Obrigado.
Solução
dê uma olhada em isto.
EDIT: No seu caso, é bem fácil, já que o nsdictionary pode conter apenas nsObjects. Então %@ faria o truque.
Outras dicas
Você pode verificar a classe (KindOfClass) e depois usar o formatador apropriado.
por exemplo
if ( [myObj isKindOfClass:[NSString class]] )
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow