2014-09-19 2 views
0

내 앱이 iOS 7에서 완벽하게 작동하지만 iOS 8에서 선택이 작동하지 않으며 iOS7 및 iOS8에서 sqlite3_prepare_v2의 반환 값이 다른지 확인했습니다.sqlite3_prepare_v2가 iOS7 및 iOS8에서 다른 반환 받기

iOS7에

2014-09-19 09:18:08.841 Mapa Radar[511:60b] Database returned error 0: not an error 
2014-09-19 09:18:08.841 Mapa Radar[511:60b] Database returned error 0: not an error 
2014-09-19 09:18:08.974 Mapa Radar[511:60b] Accucary 5 
2014-09-19 09:18:08.975 Mapa Radar[511:60b] SELECT * FROM Radares WHERE distance2(Latitude, Longitude, -23.111100, -46.849126)<1 ORDER BY distance2(Latitude, Longitude, -23.111100, -46.849126) 
2014-09-19 09:18:08.975 Mapa Radar[511:60b] Database returned error 0: not an error 

iOS8의

2014-09-19 09:14:51.631 Mapa Radar[609:76761] Database returned error 0: not an error 
2014-09-19 09:14:51.633 Mapa Radar[609:76761] Database returned error 0: not an error 
2014-09-19 09:14:52.252 Mapa Radar[609:76761] Accucary 65 
2014-09-19 09:14:52.258 Mapa Radar[609:76761] SELECT * FROM Radares WHERE distance2(Latitude, Longitude, -23.516678, -47.477784)<1 ORDER BY distance2(Latitude, Longitude, -23.516678, -47.477784) 
2014-09-19 09:14:52.259 Mapa Radar[609:76761] Database returned error 0: not an error 
2014-09-19 09:14:52.261 Mapa Radar[609:76761] Database returned error 1: no such table: Radares 

내가 코드의 정확히 같은 작품, 어떤 아이디어에 대한 로그있어?

내 선택에 대한 코드입니다 ..

NSString *qsql= [NSString stringWithFormat:@"SELECT * FROM Radares WHERE distance2(Latitude, Longitude, %@, %@)<1 ORDER BY distance2(Latitude, Longitude, %@, %@)",lat,longi,lat,longi]; 

NSLog(@"%@",qsql); 

sqlite3_stmt *statement; 

NSLog(@"Database returned error %d: %s", sqlite3_errcode(db), sqlite3_errmsg(db)); 

if (sqlite3_prepare_v2(db, [qsql UTF8String], -1,&statement, nil) == SQLITE_OK) 
{ 
    while (sqlite3_step(statement) == SQLITE_ROW) 
    {... 
+0

그리고 오류 메시지에 대해 명확하지 않은 것은 무엇입니까? –

+0

안녕하세요 ... 왜 iOS7에서 테이블이 "존재"하고 ios8에서는 이해가 안됩니다 ... 실행중인 코드가 같습니다. –

답변

0

문제였다 :

나는 서버에서 기본 파일을 다운로드하거나 문서 디렉토리의 파일에 저장합니다. iOS7까지베이스를 저장하기 위해 파일 경로를 만드는 방법은 괜찮 았지만, 분명히 iOS8에서는 빈 데이터베이스를 저장하고있었습니다 ..

그래서 경로를 만드는 데 다른 방법을 사용했습니다. 문서 :

NSArray *paths = NSSearchPathForDirectoriesInDomains 
(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

//make a file name to write the data to using the documents directory: 
NSMutableString *fileName = [NSMutableString stringWithFormat:@"%@/radares.db", 
          documentsDirectory]; 


NSLog(@"%@",fileName); 

[_dados writeToFile:fileName atomically:YES]; 
관련 문제