如何比较在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

如何在 iOS 8 Objective c 中的 UIWebView 中从文档中加载 png 图像

在 Objective-C 中订购和发布 NSArray