Ios 满足if条件但if语句的内容似乎未执行
我正在尝试执行if/else语句,其中它检查数组是否为空。似乎第一个条件已被计算但未满足,因此它将移动到else并执行。这是iOS屏幕上的输出: 您看到的名称之所以存在,是因为执行了else语句。但是,还有3个分数为0的用户名没有显示出来。以下是相关条件:Ios 满足if条件但if语句的内容似乎未执行,ios,objective-c,arrays,null,conditional,Ios,Objective C,Arrays,Null,Conditional,我正在尝试执行if/else语句,其中它检查数组是否为空。似乎第一个条件已被计算但未满足,因此它将移动到else并执行。这是iOS屏幕上的输出: 您看到的名称之所以存在,是因为执行了else语句。但是,还有3个分数为0的用户名没有显示出来。以下是相关条件: NSArray *keyArray = [yy allKeys]; for(NSString *keyd in keyArray) { NSLog(@"yy objectforkey *********: %@", [[yy obje
NSArray *keyArray = [yy allKeys];
for(NSString *keyd in keyArray) {
NSLog(@"yy objectforkey *********: %@", [[yy objectForKey:keyd] debugDescription]);
if(![yy objectForKey:keyd]){
NSMutableDictionary* entry = [NSMutableDictionary new];
NSLog(@"inside yy object for key count 0 *****####***##*#*#*#");
[tableData addObject:keyd];
[matchesForUser addObject:@"0"];
entry[@"username"] = keyd;
entry[@"matches"] = @"0";
[entries addObject:entry];
}
else {
NSMutableArray *locs = [[NSMutableArray alloc] initWithArray:[yy objectForKey:keyd]];
//NSString *outerouter;
//NSNumber *outeroutermatches = [NSNumber numberWithInt:0];
for(NSDictionary *outterar in locs) {
NSMutableDictionary* entry = [NSMutableDictionary new];
NSLog(@"%@ outtererjar descriptiong ##(#(#(#(#(#(#(#(#(#((#", [outterar description]);
entry[@"username"] = keyd;
entry[@"matches"] = [outterar valueForKey:@"groupmatches"];
if([entries count] > 0) {
for(int counter = 0; counter < [entries count]; counter++) {
if([[[entries objectAtIndex:counter] valueForKey:@"matches"] intValue] < [[entry valueForKey:@"matches"] intValue]) {
NSLog(@"GETTING IN IFFFFFF ABOOOVVEEEEE ******8888888*********");
//NSMutableDictionary *stud = [[NSMutableDictionary alloc] initWithObjectsAndKeys:keyd, @"username", nil];
[matchesForUser addObject:[outterar objectForKey:@"groupmatches"]];
[tableData addObject:keyd];
NSLog(@"%@ WHAT IS ENTRIES>>>!!!!??!?!?!", [[entries objectAtIndex:counter] valueForKey:@"username"]);
if([keyd isEqualToString:[[entries objectAtIndex:counter] valueForKey:@"username"]]) {
NSLog(@"GETTING IN IFFFFFF ******8888888*********");
[entries removeObjectAtIndex:counter];
[entries insertObject:entry atIndex:counter];
}
else {
[entries addObject:entry];
}
}
else {
[entries addObject:entry];
}
}
}
else {
[matchesForUser addObject:[outterar objectForKey:@"groupmatches"]];
[tableData addObject:keyd];
[entries addObject:entry];
}
}
}
}
我只需要能够识别其中一个物体是这样的。谢谢 线路
![yy objectForKey:keyd]
检查
字典中是否不存在键D
这当然总是错误的,因为属性allKeys返回的所有键都保证存在,并且现有键的值根据定义不能为nil
如果要检查数组是否为空,则必须写入
![[yy objectForKey:keyd] count]
PS:考虑使用更多的描述性变量命名,而不是YY
,如果你提到在NSCORDATION中你不能为一个密钥存储一个零值的事实,这个答案就更有意义了。谢谢各位……有时候我会急忙用变量名——我会尽力做得更好。我以为你是对的。但现在我注意到问题发生在我退出应用程序,然后进入应用程序,然后尝试访问记分板…如果我已经在应用程序中,并选择记分板,它工作正常。我想这与我的循环计数器有关-试图找出它-我可以得到一个关于-1的解释吗?![[yy objectForKey:keyd] count]