yashiganiの英傑になるまで死ねない日記

週末はマスターバイクでハイラルを走り回ります

Cocoaの覚えておくと便利だと思う機能

[NSDate dateWithNaturalLanguageString:]

文字列からNSDate作るのはけっこうめんどうだけど,これを使えばNSDateFormatterなしに作れます,一度動作確認さえすればいいので,値のフォーマットが固定されている場合には有用です.(Macのみ)

[NSArray lastObject]

返り値がNSArrayだけど,ひとつしか要素が入ってないことを見越している場合は,lastObjectが便利です.空の場合はnilが返ってくるので,空のArrayに対してobjectAtIndex:してしまってout of boundsになるというよくあるバグが発生することもありません.

[NSArray componentsJoinedByString:]

HTTPのクエリを作るときなど特定の文字列で区切ることのできる文字列を作るときはこのメソッドが便利です.NSMutableStringにappendしていくよりも,Arrayにキーバリューのペアを入れておいてcomponentsJoinedByString:を呼んでやるほうがエレガントに感じます.

[NSArray enumerateObjectUsingBlock:]

拡張for文でもできますが,こちらはblockにindexがまわってくる点で便利です.for文中でindexを使いたくなる場面はよくありますが,拡張for文ではindexをつきとめるためにindexOfObjct:を呼ぶ必要があってコードがださくなりがちですが,こちらを使うとスマートに解決できます.また,コードからforを一掃できるのも良いです.

[NSString lastPathComponent]

NSURLも影ながら活躍するクラスなのですが,NSStringもファイルパスを格納して使われることを前提にされているものが多く存在するため,同様に使うことができます.このメソッドを使うとファイルパスから末尾のファイル名を取得できるので地味に便利です.

[NSString boolValue]など

JSONなどをパースした際に値がNSStringで返ってくることがありますが,値をリテラルに変換するのにはboolValueなどのメソッドが便利です.NSNumberにも同じものが存在するためJSONをパースしたパターンでは,実際のオブジェクトを気にせず使うことができます.

[NSString hasPrefix:]/[NSString hasSuffix:]

指定した文字列(から始まる/で終わる)かを判定できます.覚えておくと簡単に判定できる表現力が増すので覚えておくといいです.

あと,NSArrayやNSDictionaryのリテラル表現はコーディング時はさることながら,デバッグ実行時にめちゃめちゃ捗るので積極的に使いましょう.