我有下一个获取SQLite的代码:
if (sqlite3_prepare_v2(database, query, -1, &statement, NULL) == SQLITE_OK) {
while(sqlite3_step(statement) == SQLITE_ROW) {
NSInteger groupID = sqlite3_column_int(statement, 1);
NSInteger universityID = sqlite3_column_int(statement, 2);
NSInteger averageMark = sqlite3_column_int(statement, 4);
Group *group = [self objectFromArray:self.groups withID:groupID];
University *university = [self objectFromArray:self.universities withID:universityID];
NSMutableDictionary *mGroups = university.groups.mutableCopy;
mGroups[group] = @(averageMark);
university.groups = [NSDictionary new];
university.groups = mGroups;
NSLog(@"%@", university.groups[group]);
}
}
我的上一把钥匙有问题。因此,在university
university.groups
最后一个键返回(null)
值的所有(null) (null) (null)
中,它就在那里。我使用NSLog在控制台中看到,我总是看到averageMark = 72
...这很奇怪,但是在下一次出现值时,新键中的值出现问题。例如,我第一次为first key
添加averageMark
,在控制台中返回(null),在第二圈我为second key
添加first key
。现在它对second key
都有好处,它返回72,但现在 mGroups[group] = @(averageMark);
university.groups = mGroups;
if (mGroups[group])
NSLog(@"1234");
NSLog(@"%@ %@ %@", university.groups[group], mGroups[group], @(averageMark));
返回(null)。有什么问题?我在哪里读词典?
修改 我尝试检查NSMutableDictionary中是否存在密钥。没有。
{{1}}
在控制台中我总是看到下一个: