viewDidLoadのタイミング
何気なしにviewDidLoad以下に処理を書いてたけど
画面遷移でもって、viewをいったりきたりしたとき問題になりましたわ。
viewDidLoad
はインスタンス化したときに呼ばれる
viewWillAppear
はView表示直前に呼ばれる
viewDidAppear
はView表示直後に呼ばれる
なのでviewがあちこち遷移する場合は、viewが表示されるときに処理するものはviewDidLoadに書いちゃうとだめだった
そーいえばセミナーでも言ってたけど、ぼんやり聞いてたかも・・
iPhoneアプリ開発もXCode+Subversionで
チームで開発するにあたってバージョン管理は大切だなーと思ってても
自鯖で公開もなんだし、、と思って早数年。
やっとこレンタルサーバにてSubversionレポジトリを構築
クライアントは専用クライアントもいいけど
iPhoneアプリ開発だしどうせならXCodeのSCMでやってみた。
でもレンタルサーバなので、アカウントは1コ。
sshの公開鍵も複数ユーザ分登録するにはどやって??と疑問が。
いろいろ調べて試行錯誤してこんな感じでできたっぽい
レンタルサーバ(自分はさくら)にてSubversionとレポジトリ構築済みを前提に
ターミナルで
ssh-keygen -t rsa -v
エンター何度か押すと
ホーム/.ssh以下にid_rsa.pubという公開鍵ができてるはず
(ほんとは作成時にパス入れた方がいいのかな?)
この内容をコピーしておいて
サーバ上の
/home/ユーザー名/.ssh/authorized_keys
(無ければ作成)
command=”svnserve -t –tunnel-user=ユーザー名1″ ssh-rsa [ユーザー名1の公開鍵]
command=”svnserve -t –tunnel-user=ユーザー名2″ ssh-rsa [ユーザー名2の公開鍵]
と書いておく
XCodeにて
環境設定/SCMで
スキーム:svn+ssh
ホスト:レンタルサーバのドメイン(レン鯖ユーザー名.sakura.ne.jp)
パス:レポジトリの絶対アドレス(自分は /home/レン鯖ユーザー名/repos)
ユーザ:レン鯖のユーザー名
まずはローカルに
プロジェクト用のフォルダ作って
その中にお約束のtrunk,branches,tagsフォルダ作って
trunk(branchesでも)の中にXCodeのプロジェクトファイルを入れときまして
それをインポート(読み込む)
ほんでこれを逆にチェックアウトして、XCodeのプロジェクト用フォルダにでも。
チェックアウトしたプロジェクトを開いて(たぶんダイアログでるはず)
プロジェクトの情報/一般のSCMリポジトリを登録されてるリポジトリにする。
これでリポジトリとローカルの情報のやりとりができるようになるよーです。
こちらのblogを大いに参考にさせていただきました。
ありがとうございます・
Sio’s Gadget Blog WP
tkoki blog
iPhoneのSQLiteでどんハマリ
web&PHPの案件が一段落したのでいま一所懸命iPhoneプラグラミング中。
データベース使いたかったのでSQLite使ってるんですが、どーも挙動がおかしい。
初回読み込んだときはselectもちゃんとイケた。
そのあとSQLite Manager(firefox)でテーブル増やしたりフィールド増やしたりして
ビルド実行しても更新した部分が反映されていない。読み込まない。
シミュレータでやってたのであらためて実機でやると、あら読み込む。
シミュレータがおかしいのか!と思って
さらにテーブル増やすと、こんどは実機でもおかしい。
ほんじゃ、データベースファイルをのけて実行してみたら
なぜか読み込む(古いままのデータ)。なぜに??
よーくソースみてみると、なんだかわからずすっとばしてたメソッドに重要なことが。
(appleのサンプルからコピーした部分)
- (void) copyDatabaseIfNeeded
iPhoneのDocumentフォルダ内にデータベースファイルが存在しなければ、
アプリケーションバンドル内のデータベースファイルをDocumentフォルダへコピーする。
ほんで、通常はDocumentフォルダ内のデータベースをアクセスするようになってた。
どーりで、リソース内のデータベースファイルを変更しても反映されないはずだわ。
ちゃんとソースは読んどけってことですね。。
デバッグ中は、コピー前にデータベースファイルを強制削除する一文を付け加えました。
またへんなとこで時間食ってしまった。



最近のコメント