stringWithFormat:具有未知数据类型

时间:2010-10-02 23:39:28

标签: objective-c nsstring foundation

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

2 个答案:

答案 0 :(得分:4)

查看this

编辑:在你的情况下它非常简单,因为nsdictionary只能包含nsobjects。所以%@会做到这一点。

答案 1 :(得分:0)

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

e.g。

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