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

[][]int型→NSString型 17:05 はてなブックマーク - int型→NSString型 - 3ヶ月でiPhoneアプリを1本作る日記

NSNumberにいろんなデータ型を扱うメソッドが用意されている。

その中の numberWithUnsignedInt で初期化して、stringValue メソッドでNSStringにできる。(荻原本pp.220)

label1.text = [[NSNumber numberWithUnsignedInt:i] stringValue];

id:kimadaさんありがとうございました。

[][]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を使う方がしっくり来るのですが、それは人によって違うかもしれません。どちらがいいのかというのは、一概に決められないと思います。

2009-09-17

[][]NSUIntegerの値を表示したいとき 00:39 はてなブックマーク - NSUIntegerの値を表示したいとき - 3ヶ月でiPhoneアプリを1本作る日記

こーやんなきゃいけないのかなぁ。もっといい方法ある?

data1 = [NSArray arrayWithObjects:@"iPod",@"iPhone",@"mixi",@"hatena",nil];
label1.text = [NSString stringWithFormat:@"%d",(int)[data1 count]];

[][]ランダムな数値を表示 00:56 はてなブックマーク - ランダムな数値を表示 - 3ヶ月でiPhoneアプリを1本作る日記

今日の成果はこんなしょぼいのだけ・・・。。。

srand(time(NULL));
int indx = rand() % 100;
label1.text = [NSString stringWithFormat:@"%d", indx];

kimadakimada2009/09/20 10:41数値を単独でNSStringに変換する場合は、NSNumberを使うのがいいと思います。
NSUIntegerの場合は、以下のような感じです(内部処理的には、%uでフォーマットされるようです)。

label1.text = [[NSNumber numberWithUnsignedInt:[data1 count]] stringValue];

soheisohei2009/10/17 17:07遅くなりました。勉強になりました、ありがとうございます!