Hatena::Groupiphone-dev

3ヶ月でiPhoneアプリを1本作る日記 RSSフィード

参考になった記事があれば☆をぽちっとしていただけると

2009-12-27

[][]NSBundleでファイルの読み込み 00:53 はてなブックマーク - NSBundleでファイルの読み込み - 3ヶ月でiPhoneアプリを1本作る日記

NSString* path = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"txt"];
NSString* fileContents = [NSString stringWithContentsOfFile:path];

ofType で拡張子を指定するんだけど、js だったらなぜか読み込めない。これって使える拡張子が決まっているのだろうか…。

KishikawaKatsumiKishikawaKatsumi2009/12/28 20:12*.js はデフォルトでソースファイルとして扱われるのでバンドルに含まれないんですよ。
ターゲット>[アプリ名]>ソースをコンパイル
と開いて、*.js ファイルを「バンドルリソースをコピー」の方にドラッグして、再ビルドすればバンドルから読み込めるようになります。

ちなみに、
[[NSBundle mainBundle] pathForResource:@"filename.txt" ofType:nil];
のように、リソース名に拡張子を含めれば、2つ目の引数は無くてもいいです。

soheisohei2009/12/29 11:05KishikawaKatsumi様、
なるほど、そういうことなんですね。理解できました。御丁寧に説明ありがとうございました!

2009-10-17

[][]stringWithContentsOfFileの挙動 21:58 はてなブックマーク - stringWithContentsOfFileの挙動 - 3ヶ月でiPhoneアプリを1本作る日記

NSString* path = [[NSBundle mainBundle] pathForResource:@javascript" ofType:@"js"];
NSString* js = [NSString stringWithContentsOfFile:path];

ということをやってjsファイルを読み込みたかったんだけど、なぜかnullで読み込めていない。

試しにファイル名の拡張子をtxtに変えたらできた。

ファイルの拡張子に制限があったりするのかなぁ…。

horigoodhorigood2009/10/17 17:28intをNSStringにするとき...私は下記のメソッドを使っています。
int i = 0;
NSString * str = [NSString stringWithFormat:@"%d",i];
ご参考まで。

soheisohei2009/10/17 17:33ありがとうございます。私も最初その方法でやっていたのですが、id:kimadaさんから以下コメントをいただきました。
http://iphone-dev.g.hatena.ne.jp/sohei/20090917#c1253410876

horigoodhorigood2009/10/17 18:10ああ、なるほど。
stringWithFormatだと、何か問題があるのでしょうか?
メソッドが1つですむ方が良いような気がしますが...。

soheisohei2009/10/17 23:07詳しくは調べていませんが、恐らくNSStringで文字列を生成する方がコストがかかる…ということではないでしょうか。

kimadakimada2009/10/20 16:17中途半端なコメントで、混乱させてしまいすみませんでした。
単独の値を変換するときには、自分ではNSNumberを使う方がしっくり来るのですが、それは人によって違うかもしれません。どちらがいいのかというのは、一概に決められないと思います。