頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


クラスメソッドよりもカテゴリの方がなんとなくすっきりする

例えばNSString型の文字列があってそれをNSData型に変えたい、とするよ。
ネットを漁れば
{
    NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
}
なんてサンプルが見つかって一件落着。
でも、数ヶ月後か数年後かわからないけどまた同じ疑問にぶつかった時、俺はきっと同じことを繰り返すんだよね。いや、ホント時間の無駄。

だからこういう時、Xcodeの素晴らしい機能Code Snippetを使ってメモしておくってのはいいと思うんだ。ショートカットを設定しておけば一撃で表示できるし。

その他の方法だとクラスメソッドにしておくってのもやるんだ。
MyMethodsクラスなんて作っておいてそこに処理を書いておいて
{
    NSData *data = [MyMethods changeToDataFromString:string];
}
こんな感じで使うとか。
自分になじむメソッド名を付けられるのがいいところで後々このコードを見た時に理解しやすいのが利点。あー、自分で作ったメソッドなんだなってことも余裕でわかるし。


最近の好みはクラスメソッドよりもカテゴリを使って記述しておく方法。
@implementation NSString (ConvertToNSData)
-(NSData *)toData
{
     //NSStringをNSDataへ変換する
    return [self dataUsingEncoding:NSUTF8StringEncoding];
}
@end
↑こんな感じの記述をしておけば、実際に使う時は
{
    NSData *data = [string toData];
}
↑これだけになるのでかなりすっきりする。
{
    NSData *data = string.toData;
}
↑こういう書き方でもいいけど個人的にはあまりしっくりこないので上の方が好み。
この処理に限って言えば、型を変える処理にドット記法で記述するのがしっくりこないってとこかな。

<< NSMutableArrayのカテゴリを使って構造体を配列に出し入れしたい   TopPage  CopyPasteCharacter.comをXcodeのコメントに使ってみる >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/761-1a23d49e




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

FC2Ad