2

次のクエリを使用して、データベース テーブルの 1 つに列を新しく追加します。

alter table 'user' add column 'IsMarried' BOOL default 'false';

データベースの更新が完了すると、ユーザー「jhon」の IsMarried ステータスがデータベースで「true」になります。

次に、Objective C を使用して SQL クエリを作成し、次のように jhon の結婚ステータスを取得します。

BOOL married = [results boolForColumn:@"IsMarried"];

私の問題は、ブール変数「既婚」が常にfalseを返すことです。

次に、コードに次の行を追加して、正しいかどうかを確認します

NSString *strMarried = [results stringForColumn:@"IsPwdProtected"];

その後、strMarried は jhon に対して「true」を返します。boolForColumn メソッドを使用してブール値を取得する方法を教えてもらえますか

4

3 に答える 3

1

BOOL は SQLite ではサポートされていません。それぞれ false と true を表すには、整数 (0 と 1) を使用する必要があります。詳細はこちら: Is there a booleanliteral in SQLite?

私は現在Macの前にいないので、これをテストすることはできませんが、次のようにすると、あなたが望むものになると思います:

alter table 'user' add column 'IsMarried' INTEGER default 0;

次に、ユーザー 'jhon' を結婚ステータス 1 に更新すると、への呼び出しboolForColumnが true を返すと思われます。

于 2013-05-09T13:30:40.730 に答える