SwiftにはNSString
とString
の2つの文字列型があり、どういう違いがあるのか気になったので調べました。
NSStringとStringの違いは?
Objective-CではNSString型が使用されていましたが、Swiftになって新たに追加されたのがString型です。
SwiftではString型の利用が推奨されています。
SwiftでNSString
をほとんど気にしなくていいのは、Objective-CのライブラリでNSString型
のものを、Swiftから使おうとしたときにはStringに見えるようになっているからです。
では実際の使うときの違いは?
NSString
にはある文字列の数を返すlengthプロパティ
などのプロパティやメソッドがあるが、String
では使えない点です。
サンプルコード
- 7行目
String型で文字数を取得するときはcountプロパティを使います。
- 10行目
String型の変数もNSString型にキャストすればlengthプロパティをつかうことも可能です。
結局のところ
現状ではSwiftでプログラムを書くためにObjective-Cのライブラリが欠かせないのに、事実上NSString
を使わなければならないケースはほとんどありません。
結局、NSStringではなく**Stringを使えばいい!**ということです。