ホーム > 開発 > CocoaSQLMapperでレコードの数を数える

CocoaSQLMapperでレコードの数を数える

英語圏のエンジニアからメールで、「CocoaSQLMapperを使って”select count(*) from foo”はどーするんだよ?」と質問があり、サンプルを更新した後にその三倍の時間を使って英文の返事を書きました_| ̄|○

さてSQLの集約関数ですが、下記のようなコードを書きます。

@interface Count : NSObject
@property (nonatomic) int value;
@end

NSError *error = nil;
Count *count = [database selectObjectBySQL:@"SELECT COUNT(*) AS value FROM Person" parameter:parameter resultClass:[Count class] error:&error];
if (count) {
    NSLog(@"%i", count.value);
}

ポイントはSQLの「AS句」ですが、それ以前に整数型の値を一個受け取る為に新しいクラス定義を行っているあたりが、大変残念な気持ちを誘っています。
CocoaSQLMapperは本業でも用いていて、この残念感には以前から気がついていたのですが、忙しくて放置プレイになっていました。

今の所、二つのプランがあります。

  • 整数、文字列、日付を一つ受け取る為のクラスを、予めライブラリに含める。
  • 結果セットの列が一つの場合に、resultClassにNSNumberなどの指定を許す。

どうした物でしょうね。
http://github.com/marvelph/CocoaSQLMapper

広告
カテゴリー:開発 タグ: , ,
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。