SQLite Select查询有时会返回一个随机数

时间:2015-09-07 11:48:49

标签: sqlite ios8

我最近升级了我正在使用IOS 8工作的应用程序,一切正常。 但是,有时当我启动应用程序时,我的SQLite SELECT查询返回:

322027609095939383707792575607519049745533997457083986970229508889061718536004240161547019569861752725561453245069316208671532472953637165437644212189011829130655476571403671022488303200932764265703966515944712440546988860820727338331302000475693699091660800.000000

84902528013508089164778277091711377903148050997045969503110252996583267358608226520193514416555326678785596608608177469762862141711497480246768422703670157146950930769110892544.000000

作为存储在这些行上的值,这是不正确的,因为还没有值。然后,当我尝试访问该数据时,此错误将自行解决 - 返回正确的值0.000000和0.000000。

任何想法为什么?

P.S。

我没有包含任何代码,如果有必要,我可以 - 但我认为它在IOS4上工作之前它是一个间歇性错误,这不是代码的问题。

2 个答案:

答案 0 :(得分:1)

事实证明,它必须与存储值的方式有关,从SQL模式访问NUMBER并将其转换为double似乎有时会返回一个随机值。

将值更改为NSNumber似乎解决了这个问题。

答案 1 :(得分:0)

第一个数字,当转换为十六进制时,看起来像这样(214个十六进制数字,107个字节):

AB937B19732B6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

第二个数字看起来像这样(148个十六进制数字,74个字节):

015746974616C600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我不知道这些数字有多重要。它们看起来不像任何类型的ASCII字符串。也许他们只是在未初始化的位置留下了噪音。