Swiftでsubstringをする

SwiftにおけるString#substringToIndexまたはsubstringFromIndexは、以下のような使い方ができません。

let str = "hogehoge"
str.substringToIndex(5)
// -> ! Type 'String.Index' does not conform to protocol 'IntegerLiteralConvertive'

substringToIndexはString.Indexを引数に取るためです。 そこで、以下のように書く必要があります。

let str = "hogehoge"
str.substringToIndex(advance(str.startIndex, 5))

一方でNSStringは引数にInt型を取りますので、こちらを利用すると以下のようになります。

let str = "hogehoge"
(str as NSString).substringToIndex(5)

参考