gpt4 book ai didi

objective-c - 将对象从数组添加到字典

转载 作者:行者123 更新时间:2023-11-28 18:40:22 25 4
gpt4 key购买 nike

我正在从 SQLite 数据库中获取行并尝试将它们插入到字典中。除了我不断收到错误!我收到错误消息“ARC 不允许将 Objective-C 指针隐式转换为‘const id *’”,我知道这意味着我在向字典中添加对象时无法使用指针。那么我该如何修复它以便将这些数组添加到字典中呢?

    NSArray *keyArray = [[NSMutableArray alloc] init ];
NSArray *valueArray = [[NSMutableArray alloc ] init ];
NSDictionary* dic;
NSInteger dataCount = sqlite3_data_count(statement);
while (sqlite3_step(statement) == SQLITE_ROW) {
@try {
for (int i = 0; i < dataCount; i ++)
{
NSString* key = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)];
NSString *value = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)];

if ([value length] == 0)
{
value = @"";
}

keyArray = [keyArray arrayByAddingObject:key];
valueArray = [valueArray arrayByAddingObject:value];

}

}
@catch (NSException *ex)
{
NSLog(@"%@,%@", [ex name], [ex reason]);
}

dic= [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray count:[keyArray count]];

最佳答案

dictionaryWithObjects:forKeys:count: 采用 C 风格的数组,而不是 NSArray 对象。 dictionaryWithObjects:forKeys: 可能会起作用,但您最好还是构建一个可变字典,完全绕过 NSArray

NSDictionary* dic;
NSMutableDictionary *tmp = [NSMutableDictionary dictionary];

for (int i = 0; i < dataCount; i ++)
{
NSString* key = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)];
NSString *value = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statement, i)];
[tmp setObject:value forKey:key];
}
dict = tmp;

关于objective-c - 将对象从数组添加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11726926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com