2

我正在制作一个框架,我有这个代码(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但我确定有人知道这个怎么做?谢谢。

4

2 回答 2

4

看看这个

编辑:在你的情况下这很容易,因为 nsdictionary 只能包含 nsobjects。所以 %@ 可以解决问题。

于 2010-10-02T23:42:49.270 回答
0

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

例如

if ( [myObj isKindOfClass:[NSString class]] )
于 2010-10-02T23:43:28.420 回答