2015-09-07 91 views
0

我最近升级我的工作与IOS 8中运行应用程序,这一切工作正常。 但是,有时,当我启动应用程序的SQLite我SELECT查询返回:SQLite的选择查询有时会返回一个随机数

322027609095939383707792575607519049745533997457083986970229508889061718536004240161547019569861752725561453245069316208671532472953637165437644212189011829130655476571403671022488303200932764265703966515944712440546988860820727338331302000475693699091660800.000000 

84902528013508089164778277091711377903148050997045969503110252996583267358608226520193514416555326678785596608608177469762862141711497480246768422703670157146950930769110892544.000000 

为存储在这些行中的值,这是不正确的,有没有价值还没有。这个错误然后在我下一次尝试访问数据时自行解决 - 返回0.000000和0.000000的正确值。

任何想法为什么?

P.S.

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

+1

顺便说一句,粘贴文本中有两个长数字,用逗号分隔。一位小数点剩下259位数字,另一位数字为176. –

+0

有意思的是,我刚刚措辞严重,现在已经做出了更正 –

回答

1

事实证明,它一定有什么事情做与储存价值的方式,访问来自SQL架构一个数字,将其转换为双似乎有时会返回一个随机值。

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

0

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

AB937B19732B6000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 

第二个数字是这样的(148个十六进制数字,74个字节):

015746974616C600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 

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