【问题标题】:sqlite3_prepare_v2 getting different return on iOS7 and iOS8sqlite3_prepare_v2 在 iOS7 和 iOS8 上获得不同的回报
【发布时间】:2014-11-14 07:08:57
【问题描述】:

我的应用在 iOS 7 上运行良好,但在 iOS 8 上我的选择不起作用,我检查了 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)
    {...

【问题讨论】:

  • 错误信息有什么不清楚的地方?
  • 嗨...我不明白为什么在 iOS7 上该表“存在”而在 ios8 上却没有...运行的是相同的代码..

标签: iphone sqlite select ios7 ios8


【解决方案1】:

问题是:

我从服务器下载基础并保存在 Documents 目录的文件中。在iOS7之前,我用来创建de文件路径来保存基础的方法还可以,但显然在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];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多