0

ユーザーが後で拡張できる、事前に入力されたsqliteデータベースを提供するアプリがあります。データベースを構築したとき、値がfloat(NSNumberにはfloatが含まれている)でなければならないようにデータベースを設定しました。データベースの一部の「セル」には値がないため、入力しませんでした。

ただし、Firefox拡張機能を使用してsqlite Dbを探索すると、次のように表示されます。

ここに画像の説明を入力してください

私が埋めなかった「セル」は青です。Firefoxの拡張機能の設定によると、青い「セル」は文字列を示します。赤はnil/nullを示します。

特定の属性の値をフェッチし、それらの「文字列」をフィルタリングして、次のようなことを実行しようとしています。

Entity  *entity = [[self.managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0];
[entity setValue:nil forKey:@"attribute"]; // I would do a loop for all the items in the array

ただし、文字列のように見える値をフェッチする方法が見つかりません。私にできることは、float値が0の値をすべて選択することだけですが、問題は、実際には0の値があり、実際には意味があるということです。

それを行う方法について何かアイデアはありますか?

nilでないものをすべてフェッチすると、それらはそこにあります。したがって、それらはnullとは見なされません。

4

1 に答える 1

1

CoreData はデータベースではありません。オブジェクト グラフ リレーションシップ マネージャーです。データベース操作を実行しようとしていますが、うまくいきません。データベースを直接変更する必要がある場合は、SQLite ライブラリ (またはsqlite3CLI ツール) などの実際のデータベース ツールを使用する必要があります。

于 2012-06-17T21:37:04.057 に答える