如何比较目标C中从NSArray转换NString?
我是iOS新手。而且我现在面临一个问题,一个代码如何比较目标C中从NSArray转换NString?
array=[[NSMutableArray alloc] init];
array =[responsedict valueForKey:@"Type"];
NSLog(@"Type Array =%@",array);
for (int i =0; i<[array count]; i++) {
if (array.count>0)
{
typeString = [NSMutableString stringWithFormat:@"%@", [array objectAtIndex:i]];
NSLog(@"Type String =%@",typeString);
}
}
我得到的字符串值作为
Type String =1
Type String =2
现在我需要康普艾字符串中的cellForRowAtIndexPath
if ([typeString isEqual:@"1"]) {
cell.IBTiconlbl.textColor = [UIColor blueColor];
}
if ([typeString isEqual:@"2"]) {
cell.IBTiconlbl.textColor = [UIColor redColor];
}
但其转换仅在readColor中的文本颜色不是蓝色。字符串包含值1和2.我需要在字符串值为1时将文本颜色转换为蓝色,当字符串值为2时需要将文本颜色转换为红色。但它只执行一项操作。
无需整个数组转换为NSString
这将保存代码优化时,有些则可以通过使用indexPath.row
检查对象做到这一点,并采取相应的行动见下文代码:
if([[NSString stringWithFormat:@"%@",[array objectAtIndex:indexPath.row]] isEqualToString:@"1"]){
cell.IBTiconlbl.textColor = [UIColor blueColor];
}else if([[NSString stringWithFormat:@"%@",[array objectAtIndex:indexPath.row]] isEqualToString:@"2"]){
cell.IBTiconlbl.textColor = [UIColor redColor];
}else{
// code for else part here
}
尝试......
if ([typeString isEqualToString:@"1"]) {
cell.IBTiconlbl.textColor = [UIColor blueColor];
} else if ([typeString isEqualToString:@"2"]) {
cell.IBTiconlbl.textColor = [UIColor redColor];
} else {
cell.IBTiconlbl.textColor = [UIColor clearColor];
}
我认为你需要得到一本关于iOS编程的书并研究它。
-
问题1:
在第一行中创建一个NSMutableArray并将其分配给阵列。在下一行你重写数组。创建NSMutableArray完全没有意义。
-
问题2:
您正在使用方法valueForKey。除非您已阅读valueForKey的文档,否则您理解它,并且您有合理的理由使用valueForKey而不是objectForKey,则应使用objectForKey或subscript语法。因此无论[responseDict objectForKey:@“Type”]或更好的responseDict [@“Type”]。
-
问题3:
你是不是检查结果,以任何方式,让您的应用程序将很快,如果你有一个对象,它是不是一个阵列崩溃。如果你将它分配给一个NSMutableArray,那么一旦你尝试修改它就会崩溃,因为它不太可能是一个NSMutableArray。
-
问题4:
的 “如果(array.count> 0)” 显然毫无意义的。
-
问题5:
您不使用正确的循环语法使你和其他人的生活很辛苦。对于(数组中的id项)要短得多,并且运行速度比您的代码快得多。
-
问题6:
为什么地球上的typeString可变的?
-
问题7:
你似乎不知道什么样的对象存储在数组中。这是一个数字吗,它是一个字符串吗?你应该真的知道这一点并相应地进行比较
-
问题8:
你绝对不应该在被的cellForRowAtIndexPath分析一些数据。这是可怕的。以你的responseDict为例,定义一个可以代表你的响应数据的类,将它解析成一次到适当的数据中,包括你所有的错误检查,然后cellForRowAtIndexPath可以访问数据。
使用这样的'如果([typeString isEqualToString:@ “1”])'比较字符串 –