SQLite 데이터베이스 iOS6.0에서 데이터를 검색 할 수 없습니다
-
11-12-2019 - |
문제
iOS5.0을 실행하면 SQLite 응답을 올바르게 실행하고 데이터를 검색 할 수 있지만 iOS6.0에서 실행할 때 My.sqlite 데이터베이스에서 데이터를 가져 오려고하지만 iF 사례를 실행하지 않습니다.항상 다른 상태에서 들어갑니다.내가 뭘하고 있는거야?I.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.
참조 용이 코드를 확인하십시오.
NSLog(@"sqlite3_prepare_v2 = %d SQLITE_OK %d ",sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil),SQLITE_OK);
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
{
NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
while (sqlite3_step(compiledStatement)==SQLITE_ROW)
{ if(sqlite3_column_text(compiledStatement, 2) != nil)
modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
}
}
else
{
}
.
iOS6.0 로그 인쇄
sqlite3_prepare_v2 = 1 SQLITE_OK 0
sqlite3_step = 21 SQLITE_ROW 100
.
ios5.0 로그 인쇄
sqlite3_prepare_v2 = 0 SQLITE_OK 0
sqlite3_step = 100 SQLITE_ROW 100
. 해결책
다른 곳에 위치하므로 결과적으로 오류가 발생할 수 있습니다.
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
{
NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
while (sqlite3_step(compiledStatement)==SQLITE_ROW)
{ if(sqlite3_column_text(compiledStatement, 2) != nil)
modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
}
}
else{
//error
NSLog(@"Failed to open database. Error: %s",sqlite3_errmsg(database));
}
. 다른 팁
장치 (또는 시뮬레이터)에서 앱을 삭제 해보십시오. 를 청소하고 빌드하십시오.
나는 100 % 확실하지 않지만 이것에 관해서는 다음과 같습니다. null 은 void * , nil 은 ID 입니다.
이를 변경할 수 있습니다 :
.
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
부 엉 :
.
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, NULL)==SQLITE_OK)
NIL을 null로 바꿉니다.다시 100 % 확실하지 않지만이 문제만이 코드에서 볼 수 있습니다.나는 항상 null을 사용합니다 :)
희망이 도움이 ...