我正在制作一个框架,我有这个代码(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
但我确定有人知道如何做到这一点?感谢。
答案 0 :(得分:4)
查看this。
编辑:在你的情况下它非常简单,因为nsdictionary只能包含nsobjects。所以%@会做到这一点。
答案 1 :(得分:0)
您可以检查类(kindOfClass),然后使用适当的格式化程序。
e.g。
if ( [myObj isKindOfClass:[NSString class]] )