2012年11月26日月曜日

HTMLでtree構造を表現するサンプル

HTMLでツリー構造を表現するためのサンプルです。
.htmlファイルにコピペしてください。

a
  
 1
aa
  
 2
aaa
  
 3
aaaa
  
 4
aaa
  
 5
aa
  
 6
aa
このエントリーをはてなブックマークに追加

2012年11月12日月曜日

unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard

xcode4.5以降でUITableViewのdelegateメソッドが自動生成されると、このエラーが出る場合があります。
原因は

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{]
内に自動生成されたコードに
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

が記述されているからです。
このメソッドはiOS6.0以降でないと使用できません。
なのでiOS6.0未満も対応しているアプリではエラーとなってしまいます。

◎解決方法
従来の
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; 
を使用するだけで解決します。

このエントリーをはてなブックマークに追加

2012年11月8日木曜日

xcodeプロジェクトをgitで管理する際に無視させるディレクトリとファイル


.DS_Store
*.xcodeproj/*.mode1v3
*.xcodeproj/*.pbxuser
*.xcodeproj/*.xcworkspace
*.xcodeproj/xcuserdata/
*.xcworkspace/xcuserdata/
build/
.svn/
*.swp
*.nib
Thumbs.db
*.[oa]
*~
*.bak





◎無視させるようにする手順

  1. ターミナルを起動する
  2. $git config --global core.excludesfile $HOME/.gitexclude
  3. .gitexcludeファイルに無視するディレクトリやファイルを記述する

※上記の方法で無視させた場合、環境依存になってしまう(MAC毎に設定が変わってしまう)為、プロジェクト毎に.gitignoreを配置するのが良いでしょう

このエントリーをはてなブックマークに追加

2012年11月5日月曜日

Git逆引きリファレンスぅ


◎変更内容を全て破棄する

全ての変更内容(ステージと作業フォルダ)がHEADつまり最新のコミット内容に置き換わります。
--hardオプションをつけることで作業フォルダの内容も対象となります。
つまり「git reset HEAD」とした場合ステージ(index)の内容だけが最新のコミット内容に置き換わります。

◎ディレクトリ(フォルダ)配下をGitで管理出来るようにする

Gitで管理したいディレクトリへ移動して本コマンドを実行することで、配下の全てのフォルダ及びファイルを管理する必要最低限の準備が整います。
※1 本コマンドを実行後に管理対象とするフォルダ及びファイルを指定する必要があります。

◎ディレクトリ(フォルダ)配下の全てのディレクトリ及びファイルをステージ(index)に追加する

Gitで管理したいディレクトリへ移動して本コマンドを実行すると、配下の全てのファイルをGit管理下に置く事が出来ます。 addは変更内容を追加するようなイメージです。
※1 .gitignore によって無視されているファイルは無視されます。
※2 --updateの機能も同時に実行されます。

◎作業フォルダ配下の全ての追加・変更・削除をステージ(index)に登録する

ここでいう作業フォルダとは.gitがあるフォルダで、「git init」を実行したフォルダを示します。 「$ls -a」で.gitを確認する事が出来ます。 ※1 「git add -A」でも同じ事が可能

◎ディレクトリ(フォルダ)を指定してステージ(index)に追加する

addはステージ(index)に変更内容を追加するようなイメージです。これを「ステージする」とか「ステージング」といいます。
新しいファイルを追加するという変更内容を追加しています。
※1 「git add .」でカレントディレクトリを指定出来ます。

◎メッセージを付加して変更内容を保存する

git add等での変更内容は実際には一時的な記録(スナップショット)でしかありません。
この一時的な記録場所をindex(索引)又はstage(ステージ)といい、記録することを「ステージ(stage)する」とか「ステージング」といいます。
indexの内容(stageされた変更内容)を履歴に保存するのがcommitです。commit先はリポジトリといいます。

◎コミットIDとメッセージだけのシンプルなlogが見たい

◎コミットIDを指定して内容を比較する

◎変更内容(削除も含む)をステージ(index)から復活させたい

◎変更内容(削除も含む)をリポジトリ(履歴)の最新から復活させたい

※1 ステージ(index)の内容は破棄されます。

◎最新コミットの筆者をリセットする

◎作業フォルダの変更内容を維持したまま最新コミットを取り消す

◎commitとaddを同時に行う

「-a」のオプションを付加する事で、ステージ(index)にあるファイルの変更が更新(git add)されてさらにコミットされます。
※1 ステージ(index)に無い(git addされていない)ファイルはコミットされません。

◎必要のないディレクトリやファイルをgit addしてしまった

◎前回のコミットメッセージを編集したい

--amendオプションを付加すると新しい履歴は追加されずにHEADのコミット内容が上書きされます。
※1 ステージ(index)内容が変更されていた場合それもcommitに含まれてしまいます。

◎ステージ(index)の変更内容を取り消す

※1 「git reset」でも同じ事が可能

◎ファイル名を変更したい

変更した後はコミットしないとリポジトリには反映されません。

◎ステージ(index)からファイルを削除する

--cachedオプションを付加するとステージ(index)が対象になります。
当然ながらリボジトリに反映させる為にはcommitする必要があります。

◎最新のコミットから特定のコミットを削除して最新コミットとする

逆マージというやつです。本コマンドの場合は逆マージしてさらにコミットまで実行されます。 なので複数コミットの場合は使用出来ません。

◎複数コミットの逆マージ

この時点で のように表示されるので と修正して
:wq
コミットメッセージ編集画面が起動したらメッセージを編集して
:wq

◎rebaseを中止する

◎共有リポジトリを作成する

◎ブランチを作成する

◎ブランチを切り替える

◎リモートリポジトリのブランチを削除する

◎日本語ファイルの文字化けを解消する

◎GitコマンドをTabで補完できるようにする

本コマンドは一回実行すれば次回login時も有効になっています。

◎ステージ(index)の中身が見たい

◎サブモジュールを削除したい

◎リポジトリとステージされた内容(インデックス)のdiffを取りたい

◎ブランチAのコミット内容を現在のブランチへマージする

◎ブランチの作成と新しいブランチへの切り替えを同時に行う

◎ブランチAを削除する

◎設定(Config)の一覧が見たい

◎現在のブランチにマージ済みのブランチ一覧を表示する

◎現在のブランチに未だマージされていないブランチ一覧を表示する

◎HEADとは

HEAD はあなたが作業しているローカル(カレント)ブランチの最新のコミットを指し示します。

◎リビジョンを指定してブランチを作成する

◎gitkで全体のグラフを表示したい

◎マージを中断したい

このコマンドによりステージと作業領域の状態が最新のコミット内容で強制的に上書きされます。

◎git pull だけでカレントブランチのpullを実行したい

$git pull
を実行すると次のようなエラーが出る場合 トラッキング先を設定することで
$git pull
でpullすることが出来るようになります。 トラッキングを設定すると$git push、$git pull、だけで実行出来るようになります。

◎gitでプロジェクトをエクスポートする

フォルダ名/配下にエクスポートされてファイルパス.zipが作成される
※フォルダ名/のスラッシュを忘れないでね


このエントリーをはてなブックマークに追加

/Applications/MAMP/Library/bin/mysqld: unknown variable 'default-character-set=utf8'ってエラーが出た

MACにMAMPをインストールしたけれどmysqlが起動してくれません。
/Applications/MAMP/logs/mysql_error_log.err
の内容を確認してみると、
121105 19:26:44 [ERROR] /Applications/MAMP/Library/bin/mysqld: unknown variable 'default-character-set=utf8'
こんなエラーが出てました。
どうやら以前インストールしたmysqlの設定で/etc/my.cnfに
[mysqld]
 default-character-set   = utf8
を追加したのですが、mysql5.5から表記が変わったようです。
[mysqld]
character-set-server   = utf8

に修正したら無事にmysqlが起動できました。
このエントリーをはてなブックマークに追加

2012年11月2日金曜日

UIWebViewにJSONデータを渡す with jQuery

jQueryを使用すればUIWebViewにJSON形式のデータを読み込ませることが簡単にできます。
手順はこちら

  1. NSString型のJSONデータを用意する。
  2. UIWebViewのjavascript実行メッソッドを呼ぶ。
  3. jQueryのパースメソッドを使用して文字列型のJSONデータをオブジェクトに変換する。

◎各ステップのサンプル

◎ポイント

  1. 「NSString stringWithFormat:@"loadJSON('%@');",」の%@シングルクォーテーションで囲む。
このエントリーをはてなブックマークに追加

iphoneシミュレーターで現在位置を変更したい

iphoneシミュレーターの現在位置は初期設定だとアメリカになっています。
現在位置はiphoneシミュレーターのメニューから変更することが可能です。
iphoneシミュレーターの現在位置を変更するスクリーンショット
このエントリーをはてなブックマークに追加