Objective C中的NSArray转成String如何比较?
How to compair NString when it is converted from NSArray in Objective C?
我是 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);
}
}
我正在获取字符串中的值作为
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 时,我需要将文本颜色转换为红色。但它只执行一个操作。
试试这个...
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];
}
无需将整个数组转换为 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
}
我认为你需要一本关于 iOS 编程的书并学习它。
问题 1:
在第一行中,您创建了一个 NSMutableArray 并将其分配给数组。在下一行中,您将覆盖数组。创建 NSMutableArray 完全没有意义。
问题二:
您正在使用方法 valueForKey。除非你已经阅读了 valueForKey 的文档,你理解它,并且你有正当理由使用 valueForKey 而不是 objectForKey,你应该使用 objectForKey 或下标语法。所以 [responseDict objectForKey:@"Type"] 或更好的 responseDict [@"Type"].
问题三:
您没有以任何方式检查结果,因此如果您的对象不是数组,您的应用程序很快就会崩溃。如果你将它分配给一个 NSMutableArray,那么一旦你试图修改它它就会崩溃,因为它不太可能是一个 NSMutableArray。
问题四:
“if (array.count > 0)”显然毫无意义。
问题5:
你没有使用正确的循环语法,这让你和其他人的生活变得非常艰难。 for (id item in array) 比你的代码要短得多 运行 快得多。
问题 6:
为什么 typeString 是可变的?
问题七:
你似乎不知道数组中存储的是什么对象。是数字还是字符串?你真的应该知道这一点并进行相应的比较。
问题八:
您绝对不应该解析 cellForRowAtIndexPath 中的某些数据。那太可怕了。拿你的 responseDict,定义一个可以代表你的响应数据的 class,将它 once 解析成适当的数据,包括你所有的错误检查,然后 cellForRowAtIndexPath 可以访问数据.
我是 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);
}
}
我正在获取字符串中的值作为
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 时,我需要将文本颜色转换为红色。但它只执行一个操作。
试试这个...
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];
}
无需将整个数组转换为 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
}
我认为你需要一本关于 iOS 编程的书并学习它。
问题 1:
在第一行中,您创建了一个 NSMutableArray 并将其分配给数组。在下一行中,您将覆盖数组。创建 NSMutableArray 完全没有意义。
问题二:
您正在使用方法 valueForKey。除非你已经阅读了 valueForKey 的文档,你理解它,并且你有正当理由使用 valueForKey 而不是 objectForKey,你应该使用 objectForKey 或下标语法。所以 [responseDict objectForKey:@"Type"] 或更好的 responseDict [@"Type"].
问题三:
您没有以任何方式检查结果,因此如果您的对象不是数组,您的应用程序很快就会崩溃。如果你将它分配给一个 NSMutableArray,那么一旦你试图修改它它就会崩溃,因为它不太可能是一个 NSMutableArray。
问题四:
“if (array.count > 0)”显然毫无意义。
问题5:
你没有使用正确的循环语法,这让你和其他人的生活变得非常艰难。 for (id item in array) 比你的代码要短得多 运行 快得多。
问题 6:
为什么 typeString 是可变的?
问题七:
你似乎不知道数组中存储的是什么对象。是数字还是字符串?你真的应该知道这一点并进行相应的比较。
问题八:
您绝对不应该解析 cellForRowAtIndexPath 中的某些数据。那太可怕了。拿你的 responseDict,定义一个可以代表你的响应数据的 class,将它 once 解析成适当的数据,包括你所有的错误检查,然后 cellForRowAtIndexPath 可以访问数据.