SQLite DB에서 행을 가져와 사전에 삽입하려고합니다. 나는 오류가 계속 발생하는 것을 제외하고는! 나는 "const id * '에 대한 Objective-C 포인터의 암시 적 변환을 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
어떤 라인에서 오류가 발생합니까 –
'0' 길이 문자열은 이미'@ ""'이며 값을 확인할 필요가 없습니다. 'NULL'을 검사하고 있다면'stringWithUTF8String :'이'NULL' 값에 충돌하기 때문에'sqlite3_column_text'의 값을 검사 할 필요가 있습니다. – Joe