【发布时间】:2021-03-22 15:01:16
【问题描述】:
我看过很多答案,但没有得到我的答案。所以这就是为什么我决定发布一个问题。如果有人能找到有用的链接或答案将很有帮助。 这是我的字典数组:
<__NSArrayM 0x283ba04e0>(
{
failvalues = (
"Check 1"
);
fieldname = "Check 3";
fieldvalue = (
"Check 1",
"Check 2"
);
showtype = mandatory;
tagvalue = 0;
},
{
failvalues = (
Fail
);
fieldname = "Dropdown 3";
fieldvalue = (
Fail
);
showtype = mandatory;
tagvalue = 1;
},
{
failvalues = (
"Check 1",
"Check 4"
);
fieldname = "Check 4";
fieldvalue = (
"Check 1",
"Check 2"
);
showtype = mandatory;
tagvalue = 2;
})
所以我想检查字段值是否包含失败值。 以下是我尝试过但似乎不起作用的代码:
for (int i = 0; i< [arrFields count]; i++) {
if ([[[arrFields objectAtIndex:i]objectForKey:@"failvalues"] isKindOfClass:[NSArray class]]) {
if (![[[[arrFields objectAtIndex:i] objectForKey:@"failvalues"] objectAtIndex:0] isEqualToString:@""]) {
NSLog(@"Field Values %@",[[arrFields objectAtIndex:i]objectForKey:@"fieldvalue"]);
NSArray *failValues = [[arrFields objectAtIndex:i] objectForKey:@"failvalues"];
for (int j = 0; j < [failValues count]; j++) {
if ([failValues containsObject:[[arrFields objectAtIndex:i]objectForKey:@"fieldvalue"]]) {
NSLog(@"Contains %@",[[arrFields objectAtIndex:i]objectForKey:@"fieldvalue"]);
} else {
NSLog(@"No fail values");
}
}
} else {
NSLog(@"No Fail Fields");
}
} else {
NSLog(@"Not an array");
}
}
编辑:
这个我试过了,但是如何打破这两个循环
for (int i = 0; i< [arrFields count]; i++) {
NSArray *fieldValues = [[arrFields objectAtIndex:i]objectForKey:@"fieldvalue"];
NSArray *failValues = [[arrFields objectAtIndex:i] objectForKey:@"failvalues"];
if (![[[[arrFields objectAtIndex:i] objectForKey:@"failvalues"] objectAtIndex:0] isEqualToString:@""]) {
//NSLog(@"Field Values %@",[[arrFields objectAtIndex:i]objectForKey:@"fieldvalue"]);
for(NSString *value in fieldValues){
if ([failValues containsObject:value]) {
NSLog(@"Contains %@",value);
scanStatus = TRUE;
return;
}
}
} else {
NSLog(@"No Fail Fields");
}
}
提前致谢!
【问题讨论】:
-
你到底想要什么?
True/false如果有任何失败的值?所有失败值的列表?只有failValues有对应的fieldValue? -
如果它包含,那么我想设置一个布尔值 true 并打破两个循环
-
请检查我更新的问题。谢谢!
标签: ios objective-c xcode nsarray