我提出的框架和我有此代码(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的,整型,浮点,双,等...我不能只用%@%d但我敢肯定有人在SO知道如何做到这一点?感谢。

有帮助吗?

解决方案

看看

编辑:在您的情况下,它是很容易的,因为NSDictionary中只能包含nsobjects。所以%@会做的伎俩。

其他提示

您可以检查类(kindOfClass),然后使用合适的格式化程序。

e.g。

if ( [myObj isKindOfClass:[NSString class]] )
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top