Storyboardから始めるiPhoneアプリ開発

Twitterボタン
Twitterブログパーツ

Xcodeやobjective-c、Storyboardについて得た知識などiPhoneアプリ開発の体験記を配信


草刈りパニック 海軍王アカデミー シンプルゆめ日記 シンプル表計算CelLion 魔球スラッガー 地頭を鍛えるでんしゃ算数 Don't 100
2012/03/23(金)

[iPhone][SQLite]実機転送時などでアプリ内のDBが更新されないときの対処方法

カテゴリ:Database
==<<管理者環境>>==
MacOSX ver.10.7.3
Xcode ver.4.2.1
iOSシミュレータ ver.5.0
==============

iPhoneアプリ開発でデータベースを使い始めた直後にハマったのが、「データベースが更新されない」ということでした。

原因

「実機やシミュレータのアプリケーションフォルダ内にあるデータベースファイルを削除していないから」


対処方法

※削除は自己責任で
※下記「問題の背景」も重要なのでお読みください
※実機の場合はアプリごと削除しないとダメ


ちなみに、方法1に記載したパスで辿り着くApplicationsフォルダをFinderの「よく使う項目」に登録しておくと今後一発で開けるので便利です。
1.png


問題の背景

どういう事なのか。よくブログなどで「SQLiteの使い方」が紹介されていますが、そのよくある方法を使った時の流れで説明します。
※もちろんデータベースを扱うコードによっては流れが異なりますので悪しからず。

  1. シミュレータ環境でアプリを実行(Run)する
  2. アプリケーションファイル(ソースファイル、データベースファイル、画像ファイルなどが1つにまとめられたファイル)がシミュレータ環境の各アプリケーションのフォルダ内に作成される
  3. シミュレータ環境の各アプリケーションのフォルダ内にあるドキュメントフォルダ内に同じデータベースファイルがないかコード上で確認し、なければコピーする
  4. ドキュメントフォルダ内にあるデータベースファイルをアプリに利用する

5.png


問題なのは「3」の「なければコピーする」というところ。
1番最初にRunした時点では当然データベースファイルは存在しませんからコピーされます。ところが、2度目以降では、既にデータベースファイルが存在しているのでコピーされません。

つまり、いつも使っているプロジェクトフォルダ(私の場合は、/Users/ユーザ名/iPhoneApp)でデータベースファイルをいくら更新しようとも、シミュレータ内のデータベースファイルは更新されないのです。

アプリで利用されているデータベースファイルは、「いつも使っているプロジェクトフォルダ内」ではなく「シミュレータ環境下のドキュメントフォルダ内」のものだということを覚えておいて下さい。これは、シミュレータだけでなく実機でも同じ(ハズ)です。

これは、データベースを使ったiPhoneアプリにおけるAppStoreでのアップデートの参考材料になると思います。


何度もCoreDataの習得を試みたのですが低能の私には理解出来ず、住み慣れたFMDB(SQLiteのラッパクラス)を使ってデータベースのアップデートに挑戦しています。
関連記事
  1. 2012/03/23(金)|
  2. Database
  3. | トラックバック:0
  4. | コメント:0
<<iPhoneアプリ『解除せよ!』 | ホーム | [Xcode][objective-c]iPhoneアプリ用途別、追加必須フレームワーク及びライブラリ一覧>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://blog.casualappteam.com/tb.php/78-805a7a5d
この記事にトラックバックする(FC2ブログユーザー)

検索フォーム

アプリ紹介記事

おすすめ書籍

入門者向けおすすめサービス

iPhoneアプリ開発やリリースに必須と思われるサービスです。開発と並行してリリースの環境を整える必要があります。

    シティバンク
    アプリから得られる収入やアプリ製作関連の支出を管理する口座が必要です。アプリから得られる収入は日本円だけではなく米ドル等の外貨の場合がありますので、グローバルで貨幣の両替が簡易な銀行口座を選択します。一旦はここで無難です。

    FC2ブログ
    アプリをリリースする際、サポートサイトが必須です。無料で使い勝手の良いFC2ブログがおすすめです。

    リンクシェア
    アプリの下によくある広告のあれです。ここと提携してアプリ内に広告を設置することで、広告収入を得ることができます。少しでも下心があるなら必須です。

    三井住友VISAカード
    デベロッパー登録やその他経費をクレジット払いにしておけば支払いの履歴も残りますし、一々振り込む手間が省けます。三井住友VISAカードならcitiバンクを支払い口座に指定できますし、なにかと便利です。

中級者向けおすすめサービス

iPhoneアプリをリリースしても、ダウンロードされなければ意味がありません。さらに集客力・発信力を向上させましょう。

    お名前.com
    格安で独自ドメインを取得することができます。自社サイト・個人サイトを作成する際にご利用ください。

    さくらのレンタルサーバ
    レンタルサーバーです。webサイト用もしくはアプリのデーターサーバー用にどうぞ。

    ロリポップ!レンタルサーバー
    レンタルサーバーです。webサイト用もしくはアプリのデーターサーバー用にどうぞ。

その他のおすすめサービス

私のオススメのサービスです。
参考なれば幸いです。


1位   リクナビNEXT

iPhoneアプリエンジニアは求人市場で需要があります。一般企業はアプリを広告として使うケースがありますから。私自身もリクナビNEXTを利用しています。


2位   随時更新していきます。

QRコード

QR

全記事表示リンク

全ての記事を表示する

カテゴリ

最新記事

月別アーカイブ

プロフィール

CasualAppTeam

Author:CasualAppTeam
初めまして。
iPhoneアプリ開発についてブログを綴っていきます。
xcodeやobjective-c,storyboardなどについて詳しく書いていきます。

最新コメント

最新トラックバック

RSSリンクの表示

自分のための外部リンク