2014年9月15日月曜日

【開発】xibファイル消してもクリーンビルドしてもダメよ〜ダメダメ!

xibを消しても表示されることがあって悩まされてました。

そんな時は一旦アプリをホーム画面から長押しで削除して下さい。
「今まで何だったんだ!」って言うくらい素直に消えてなくなりました!

以上!!

2014年9月14日日曜日

【開発】「implicit retain of 'self' within blocks」を「YES」に


前にBlock内でselfを参照してメモリリークするという記事を書かせて頂きましたが
http://appdeleegate.blogspot.jp/2014/07/blockself.html

このリークを簡単に調べる方法がありましたので紹介します。

「Build Settings」の「Apple LLVM 5.1 warnings - Objective C and ARC」の「implicit retain of 'self' within blocks」を「YES」にするだけです。


通常の警告と同じように黄色いマークで教えてくれます。
私の環境でも無意識にリークさせている箇所が沢山ありました。

以上!!

【開発】iPhoneホーム画面のタイトルのローカライズ方法!

iPhoneのホーム画面のタイトルを変更するには「Custom iOS Target Properties」の「Buindle display name」を変更すれば出来ますが、



ローカライズするにはどうすれば良いのかわかりませんでした。

変更する場合は「infoPlist.strings」ファイルで各言語ファイルに下記変数名で名前を指定してあげましょう。



CFBundleDisplayName = "Pass Note";  //英語の場合
CFBundleDisplayName = "合格ノート";  //日本語の場合

以上!!

2014年9月13日土曜日

【開発】NSLocalizedStringを使ってiosアプリをローカライズする方法!

最近、涼しくなってきましたね!
就寝時に冷房を付けなくても大丈夫な感じです。

さて、みなさんアプリの国際対応をどのように行ってますか!?

NSLocalizedStringを使えばKVS的な感じで言語を自動で切り替えてくれます。

合格ノートでもそろそろ日本語だけじゃなく、英語、韓国語にも対応したいと思います。

NSLocalizedStringはios7から少しやり方が変わったみたいでネットの情報も古い記事があるようですので簡単に説明してみます。

1. 左上のプロジェクト名のところをタップ
2. 切り替わった画面のInfoタブを選択
3.Localizationsの「+」をタップして追加したい言語を選択

4.プロジェクトの文字列を記述している箇所をNSLocalizedStringに変更

例:
[Before]
UILabel * hogeLabel = [UILabel new]
hogeLabel.text = @"Home";
[After]
UILabel * hogeLabel = [UILabel new]
hogeLabel.text = NSLocalizedString(@"home"nil);;

※homeがkey, nilはコメントで省略してもよし。

5.ターミナルでプロジェクトファイルのディレクトリに移動して下記を実行
find . -name '*.m' | xargs genstrings

6.生成されたLocalizable.stringsを確認しValueを言語毎に編集する。

"home" = "Home"; //英語の場合
"home" = "ホーム"; //日本語の場合

以上!!

2014年9月2日火曜日

【開発】git origin url の変更方法!


レポジトリを引っ越したくなる時がある。
その場合、ローカルのリモートURLを変更してあげる必要がある。

自分が今回行ったケースは
個人で開発を行っているアプリでDropBoxで一人でpushを行っていて
/Users/Username/Dropbox/development/projectname.git
にレポジトリを新たに作る場合です。

git remote set-url origin /Users/Username/Dropbox/development/projectname.git

プロジェクトフォルダの隠しファイル「.git」があるディレクトリで行って下さい。
隠しファイルまでみたい場合は
ls -la
を実行して下さい。

また、gitの習わしなのかディレクトリには「.git」をつけるようです。

ターミナルでprojectname.gitまで行って
git init --bare
を実行することもお忘れなく!

以上!