2011-01-05 5 views
0

私は内部のsqliteデータベースのエントリをプライマリキーで保存し、このキーをuserInfoとしてLocalNotificationにするアプリケーションを書いています。random()sqliteデータベースに保存された整数は毎回値を変更します

しかし、LocalNotificationからキーを取得し、そのエントリをdbで検索すると、何も見つかりません。次にInterfaceを変更して、Labelのキーを見て、アプリケーションが起動するたびにキーが変更されていることに気付きました。

だから私は別の「キー」列を作ってみると、それに

NSInteger *randomNR = (NSInteger*)random() 

を救いました。しかし、この数字は毎回変わっています!だから私はrandom()メソッドの実際の番号をコピーし、これをdbに保存できますか?

答えて

0

NSIntegerrandom()から正しく作成していません。 random(3)longを返します。単にlongをNSInteger *にキャストして、必要な値を取得することはできません。

NSIntegerをオブジェクトと混同している可能性があります。 NSIntegerはプリミティブなデータ型であり、がCocoaクラスのようなポインタである必要はありません。

NSInteger randomNR = (NSInteger) random(); 
NSInteger *randomNRPtr = &randomNR; // If you really _do_ want a pointer 
+0

oops ...私はそんなに愚かです...(NSInteger *)aNSNumberのようなキャストがこの失敗を引き起こしました... – Melbek

関連する問題