頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


重すぎるiPad

今頃かよ、って話題ですが、、、ようやく、先日近所の電気屋で初めてiPadを触りました!
期待通りの美しさと速さ!

しかし、それ以上に受けた印象は、、、重い!

iPadってこんなに重いものだったのか。
appleのサイトだとWi-Fi(軽い方)で680gか。
現在読んでる文庫本「世に棲む日日(二)」を計ってみたら180g。

まあ何年かすれば、初代iPadはこんなに重かったのか!って言われる日が来るんだろうけどなあ、、、


そういうことか!クラスのカテゴリ

Objective-Cでクラスをカテゴライズするって技(?)があるんですよね。
クラスのカテゴライズ コードをもっとオブジェクティブに - @IT
↑ここで見たことがあったのですが、さらっと流していました。
正直、使わないかな、、、ということで。

ところが、今勉強中の記事で出てきたのでこれは放っとくわけにはいかないってことになりました。
Study CoreData 8 ~No Music, No Life~ « Everything was born from Love

この記事の中盤あたりか、「4. どんな値も文字列に変えてしまう魔法のメソッド」というところでカテゴリの話が出てきます。
よくわからなかったのが、その記述。
上に二つのリンクがありますが、同じカテゴリなのになにやら違う、、、

最初の方はChefってクラスがあって、カテゴリを利用するのに
@implementation Chef(Japanese)
-(void) makeJapaneseFood {
    NSLog(@"japanese food!");
}
@end

@implementation Chef(Chinese)
-(void) makeChineseFood {
    NSLog(@"chinese food!");
}
@end
といった具合に実装している。

ところが、後の方では次のように実装している。
@implementation NSString(convertValue)
- (NSString *)valueToString {
    return self;
}
@end

@implementation NSDate(convertValue)
- (NSString *)valueToString {
    return [NSDateFormatter
            localizedStringFromDate:self
            dateStyle:NSDateFormatterMediumStyle
            timeStyle:NSDateFormatterNoStyle];
}
@end
ありゃ?
カテゴリってカッコの中を変えることで実装するんじゃないの?
って混乱してしまったわけですが、、、

ここで二つ目のコードをよく見れば、NSStringやNSDateクラスにメソッドを追加しているのですね。
でも、通常は継承しないと自分でメソッドの追加ってできないから、それをせずに実現しているわけだ。
なるほど、これがカテゴリってやつか。
そういう意味では一つ目のコードも同じですよね。
Chefクラスを継承せずに独自のメソッドを追加している。

そういうことかい!
実際にいろいろ自分でテストしてようやく気付きましたわ。
カテゴリ、これは使えそう!是非覚えておかねば!


iOS4.0.1とiOS SDK 4.0.1アップデートした(つもり)

まず、iOS4.0.1をiTunes経由でアップデート。
我がiPhone 3GSの設定で確認すると、バージョンは4.0.1(8A306)ってなってるから、無事バージョンアップ完了。

次に、iPhone SDK も4.0.1になったようです。
iPhone Developer Centerへ行くと注意書きで
すでにiPhoneをiOS 4.0.1にアップデートしたなら、iOS SDK 4.0.1をインストールしないと開発できませんぜ!
なんて書いてありますので素直にダウンロード&インストール。

Xcodeを起動するも、、、Xcode自体のバージョンは3.2.3で変わらないんだよね、、、
うーん、ちゃんとアップデートできたんだろうか?
確認方法がわからない、、、

とりあえず、4.0.1になった自分のiPhoneでアプリを実機テストしてみたら動いた。
iPhoneシミュレーターの設定でバージョンを確認すると、4.0.1と表示されてるな。

iPhoneシミュレーターの画像

よくわからないけど、これでいいことにしようっと。


久しぶりにBIG1000購入

W杯でしばらく発売がありませんでしたが、明日からリスタートってことみたい。
久しぶりにBIG1000を1口買いました。

当たったらこの夏に使うサンダルを買おうかな。

↓キャプチャ。
久々のBIG1000



UILabelクラスで改行したいがバックスラッシュが!

UILabelクラスで文字を表示する時に改行しようと思って文字列内に"\n"と入れてもだめ。

もしかして、UILabelって改行できない?!
と思って調べたらできるじゃないか。

どうやらnumberOfLinesプロパティを設定して、改行コードは"\n"だそうな。
UILabel *label =  [[UILabel alloc] initWithFrame:CGRectMake(10, 25, 300, 40)];
label.numberOfLines = 2;
label.text = @"僕の前に道はない\n僕の後ろに道は出来る";
[self.view addSubview:label];
[label release];

UILabelの改行例

ここで困ったのが、、、
情けないことですが、改行コードにあるバックスラッシュ"\"をどう入力するのかわからなかったのです。
いや、実を言うと"\"をバックスラッシュと言うのさえあやふやだった位でございます。

ちなみに私のキーボードはもともとはXP機(DELL製)のもので、右側のシフトキーの左には"\"があるのにいくら頑張っても、"_"ってアンダーバーしかでません。
このあたりの不便さはMac mini特有のものかもしれませんが、、、

ともかく、Google先生に聞くと、"Alt"+"\"でバックスラッシュが入力できることがわかりました。
ほれっ!\\\\\\\\\\\




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.