我从SQLite数据库获取行并试图将它们插入到字典中。除了我不断收到错误!我得到的错误“Objective-C指针隐式转换为'const id *'不允许使用ARC”我知道这意味着当我添加对象到我的字典时不能使用指针。那么我该如何解决它,以便将这些数组添加到字典中?从数组添加对象到字典
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]];
为什么不使用NSMutableArrays?你的错误究竟在哪里? – ohr 2012-07-30 18:00:05
你在哪一行得到错误 – 2012-07-30 18:00:08
'0'长度字符串已经是'@“”',并且不需要检查该值。如果你正在检查'NULL',那么你需要检查'sqlite3_column_text'的值,因为'stringWithUTF8String:'会在'NULL'值上崩溃。 – Joe 2012-07-30 18:06:31