配列が空であるかどうかを調べるif/else文を実行しようとしています。最初の条件が評価され満たされないように見えるので、elseに移動して実行します。これは、画面(iOS版)に出力されます:条件が満たされてもif文の内容が実行されないようです
else文が実行されますので、ご覧の名前があります。しかし、表示されていない0のスコアを持つ他の3つのユーザー名があります。ここで、関連する条件である:
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];
}
}
}
}
_tableViewScore
とtableData
はUIScrollView
(単数または複数)を取り込むために使用される両方の配列です。 if文の中のコードは、空のオブジェクトが見つかるたびに(配列である)実行されるべきです。 elseが実行されます。つまり、ユーザー名がスコアで表示されますが、配列がnullの場合にifが実行されないようです。
I出力は、私がチェックしていたオブジェクトが、空のオブジェクトは、次のようになります
:yy objectforkey *********: <__NSArrayM 0x170454cd0>(
)
オブジェクトのいずれかがそのようであるとき、私はちょうど識別できるようにする必要があります。ありがとう!
よりも、もっと説明変数の命名を使用することを考えてみましょうか? – ewizard