这是我的NSArray: ( " TAG_NAME&#34 ;, 3, " mp4_url&#34 ;, 4, 0, " back_tag&#34 ;, 5, 1, " PART_ID&#34 ;, " related_list&#34 ;, 2 )
我需要将所有数值放在另一个数组中。 我使用以下代码来检查从数组中获取的值是数字还是字符串,但它没有工作。每次我从数组中获取值为NSString。
for (int i=0; i<arr.count; i++) {
id obj=[arr objectAtIndex:i];
if ([obj isKindOfClass:[NSString class]])
{
// It's an NSString, do something with it...
NSLog(@"its string");
}else{
// It's an Numerical value, do something with it...
NSLog(@"its integer value");
}
}
我知道数组只存储其中的一些对象,因此在获取时我会将值作为NSString(即对象)获取。但无论如何要检查存储的值是否为数值。 请有人帮帮我.. 感谢
答案 0 :(得分:3)
您不能只将NSString
变成NSNumber
,但有些方法可以尝试从中获取数值。
这是一个选项,但您也可以查看NSNumberFormatter
。
如果所有数字都是整数,那么你可以做这样的事情......
// always use fast enumeration
for (NSString *string in arr) {
NSInteger integer = [string integerValue];
// have to check explicitly for 0 as a non-numeric would return 0 above
if ([string isEqualToString:@"0"]
|| integer != 0) {
// it is an integer numeric string
} else {
// it is a string
}
}