如何比较在Objective C中从NSArray转换的String?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何比较在Objective C中从NSArray转换的String?相关的知识,希望对你有一定的参考价值。
我是ios新手。我在代码中遇到问题
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);
}
}
我得到String中的值为
Type String =1
Type String =2
现在我需要比较cellForRowAtIndexPath中的String
if ([typeString isEqual:@"1"]) {
cell.IBTiconlbl.textColor = [UIColor blueColor];
}
if ([typeString isEqual:@"2"]) {
cell.IBTiconlbl.textColor = [UIColor redColor];
}
但它仅在readColor中转换textcolour而不是蓝色。字符串包含值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或下标语法。所以要么[responseDict objectForKey:@“Type”]或更好的responseDict [@“Type”]。
- 问题3: 您没有以任何方式检查结果,因此如果您的对象不是数组,您的应用程序很快就会崩溃。如果你将它分配给NSMutableArray,那么一旦你尝试修改它就会崩溃,因为它不太可能是NSMutableArray。
- 问题4: “if(array.count> 0)”显然毫无意义。
- 问题5: 通过不使用正确的循环语法,你正在努力创造你的和其他人的生活。 for(数组中的id项)要短得多,运行速度比代码快得多。
- 问题6: 为什么地球上的typeString是可变的?
- 问题7: 您似乎不知道数组中存储了哪种对象。它是一个数字,是一个字符串?你应该真的知道并相应地进行比较。
- 问题8: 你绝对不应该在cellForRowAtIndexPath中解析一些数据。那太可怕了。获取您的responseDict,定义一个可以表示您的响应数据的类,将其解析为适当的数据,包括您拥有的所有错误检查,然后cellForRowAtIndexPath可以访问数据。
以上是关于如何比较在Objective C中从NSArray转换的String?的主要内容,如果未能解决你的问题,请参考以下文章
从Objective C中的NSArray转换时如何比较String?
如何在Objective C的NSArray中添加字体真棒图标
如何在滚动视图中显示从 Web 获取的 NSArray 数据并在 Objective C 中扩展+更新它?
将 NSArray 对象写入领域数据库 - Objective C