1

我有下一个获取 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]);
    }
}

我的最后一个键有问题。所以在我所有universityuniversity.groups最后一个键返回(null)值中,但它就在那里。我使用 NSLog 在控制台中查看,我总是看到(null) (null) (null)......这很奇怪,但在下一次出现值并且新键中的值出现问题。例如,在第一次添加averageMark = 72forfirst key时,在控制台中返回(null),在第二圈添加averageMarkfor second key。现在一切都好first key,它返回 72,但second key现在返回 (null)。什么是问题?我的字典哪里错了?

编辑 我尝试检查 NSMutableDictionary 中是否存在密钥。没有。

        mGroups[group] = @(averageMark);
        university.groups = mGroups;
        if (mGroups[group])
            NSLog(@"1234");
        NSLog(@"%@ %@ %@", university.groups[group], mGroups[group], @(averageMark));

在控制台中,我总是看到下一个:

在此处输入图像描述

4

0 回答 0