2011-03-01から1ヶ月間の記事一覧

iPhoneでSQLite3を使う12(INSERT OR REPLACE文)

SQLiteでテーブルにデータを追加する際、あれば更新なければ追加ということがしたかったので 1.あるかどうかのチェックをSELECT文 2-1.あればUPDATE文 2-2.なければINSERT文 という形で実装していたのですが、なければSELECT→INSERT、あればDELETE→INSERTと…

Xcode4が4.0.1になってた!!

Whatʼs New in Xcode 4.0.1 Improved Assistant editor logic when switching among different file types Fixed a bug that prevented indexing of some projects Fixed a bug related to nil settings in the Core Data model editor Fixed a bug in LLVM G…

TwitterをObjective-Cから使う12(MGTwitterEngineのAPI呼び出し後に値を受ける)

基本、MGTwitterEngineのAPI呼び出しの結果は、デリゲートメソッドのxxxxReceivedで受信して処理することになります。 結果がNSArrayで返ってきます。NSArrayには、1件分のNSDictionaryが格納されています。 あとはobjectForKeyを使って、各値を取り出せばOK…

今日、3本目のアプリを申請しました。

3日くらいで作っちゃいました。リジェクトされなければ、4月はじめくらいにストアに並びます。プログラミングしている時間より、Illustratorでお絵かきしていた時間の方が長かったw サウンド、ネットワークとアプリを組んだので、次はカメラアプリです。プ…

あたらしいアプリを作成しはじめました

昨日から、新しいアプリ作成に入りました。プログラミングは、1日でほぼ終わったのですw あと、ローカライズとか細かな作り込み、アイコンとかのデザインがまだなのです。アイコンは、イメージはあるけど絵に落とす能力がw あぁ、睡眠が削られていく。

iPhoneでSQLite3を使う11(DBテーブルからUITableViewを表示)

DBテーブルからのUITableViewに表示する際に、データ数が多い場合に全部読み取るとメモリ消費も大きくなりますし、データに対して処理をする場合は時間もたくさんかかってしまいます。そのため、一度に読む量を区切り順番にページ送りして表示するようにペー…

TwitterをObjective-Cから使う11(MGTwitterEngineで同期通信する)

MGTwitterEngineを使っていて、同期通信を行いたい場面がでてきました。NSURLConnectionでsendSynchronousRequestで同期通信で送信するものを、最初に作りましたがタイムアウトの設定ができない、途中でキャンセルできないなどの問題がありました。 そのため…

iPhoneでSQLite3を使う10(iPhoneアプリリリース後のテーブルの構造変更)

iPhoneアプリをリリース後に、機能追加でテーブルの構造を変更する必要が生じました。sqlite3のDBファイルは、初回のアプリインストール時に作成されて、アプリをバージョンアップした際でも上書きされません。 ※アンインストールすると、DBファイルも消えま…

iPhoneでSQLite3を使う9(制約)

今回は、制約です。だんだん、iPhoneから遠ざかってる気がしてきましたがw 制約とはテーブルという器に、入れる値にルールをつける機能です。この列にはこんな値しか許さないというルールをつけることができます。 今回は次の4点を紹介しておきます。 NOT N…

iPhoneでSQLite3を使う8(インデックス)

テーブルにインデックスをつけましょう。 インデックスとは、本で言うところの目次です。特定の情報を探すときに、本のページを全部読むより、目次だけを読む方が早く読めますよね。それと同じでテーブルにデータを入れた時に、インデックスを作成することで…

iPhoneでSQLite3を使う7(サンプルソース)

SQLite3の過去の記載に間違いがちらほら、気づいたところは直しました。まだ間違いがあるかもしれませんので、サンプルソースを確認していただいた方が確実です。また、テーブルの構造を変更しましたのでご注意ください。 サンプルは、Testボタンのみw ボタ…

iPhoneでSQLite3を使う6(DBのエラー処理)

今回はDBのエラー処理を実装していきます。エラー処理を放置していましたので作りこんで行きます。 基本方針として、メソッド毎に戻り値を見てエラー処理をするのは面倒なので、try catchを使ってエラーをさばいていくことにします。 try catchを使えば、try…

iPhoneでSQLite3を使う5(データの追加と更新)

今回は、追加と更新についてです。SQLではINSERT文とUPDATE文を使います。 INSERT文の例 INSERT文では、どのテーブルにどんな値を追加したいかを記述します。列の個数と列の順番にあわせて値を記述します。 INSERT INTO テーブル名 VALUES (値, 値, 値, 値…)…

iPhoneでSQLite3を使う4(データの削除とバインド変数)

今回は、削除についてです。SQLではDELETE文を使います。 DELETE文の例 DELETE文では、どのテーブルを削除したいかを記述します。また、削除するときにこんなデータだけ削除するという、条件をつけることもできます。 DELETE FROM TABLE名 WHERE 条件例えば…

iPhoneでSQLite3を使う3(データの選択)

SQLite3の3回目、基本的なデータ操作について書きます。 1回目で書いた通り、データの操作はSQLで行います。SQLのDML文(データ操作言語)には、4つの種類があります。 SELECT(選択) INSERT(追加) UPDATE(更新) DELETE(削除) 名は体を表す。見たまんまです。 …

iPhoneでSQLite3を使う2(DBファイルのオープンとトランザクションとは)

前回、twitterDB.sqliteというDBファイルを作成するところまでやりました。今回は、プログラムからテーブルを使える状態にする準備部分の実装をやります。 まず、前回作った「twitterDB.sqlite」を、xcodeプロジェクトに追加してください。 それと、#import …

iPhoneでSQLite3を使う1(SQLite起動とファイルの作成)

なぜいまさら、SQLiteなのか。それはCore Dataに挫折したからです。私がOracleとかSQL Serverに慣れ親しんでいるからというのもあるのですが、Core Data使いにくい。DB(データベース)を使ったことがない人はSQLが障壁になるのかもしれませんが、より複雑な…

TwitterをObjective-Cから使う10(TouchJSON版ソース)

認証するだけのサンプルを作成しました。認証が結果は、NSLogで出力されます。 基本libxml2版と同じです。 ソースコードはこちら http://www.eonet.ne.jp/~einstein/iOS/design/Sample05.zip Sample03AppDelegate.hの下記を書き換えて、お使いください。 #de…

TwitterをObjective-Cから使う9(MGTwitterEngineにTouchJSONを組み込む)

FollowManは、libxm2で組んじゃってるんでいまさらなんですが、TouchJSONも試しておこうと思います。 yajlのソースが能力的に読めなかったから、TouchJSONに逃げようとしている訳じゃないです。 TouchJSONは、下記に最新ソースが公開されています。 https://…

TwitterをObjective-Cから使う8(MGTwitterLibXMLParserの修正)

libxml2を使うときに、MGTwitterEngineを使ってうまくいかなかったところを、メモしておきます。 users lookupなどのAPIでユーザ情報を取得するときに、xmlだとこんな感じで返ってくるのですが。 6253282 Twitter API twitterapi San Francisco, CA ・ ・ ・…