Swiftで遊ぼう! - 235 - Objective-C Compatibility
Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide
Bridging
iOSはObjective-Cと呼ばれる古い言語で開発されているけど、Swiftで仮想的にすべてのiOS APIに途切れなくアクセスすることができる。しかし、いくつかの特別なデータタイプだけは、ブリッジングを使って扱うことになる。ブリッジングとは互換性を利用するということだ。
NSStringはStringにブリッジングされる。
NSArrayはArray
NSDictionaryはDictionary
Int、Float、Double、Boolは全て、NSNumberにブリッジングされるが(逆はできない)、これらのタイプをNSNumberから得るためにdoubleValue、intValueなどを使う。Int、Float、DoubleはCタイプのint、float、Doubleにもブリッジングされる。
ブリッジタイプからキャスティングしたりされたり。
NSStringにキャストされると、NSStringのメソッドが使えるようになるけど、Swiftではユニコードしか扱わないので取り扱いにかなり注意が必要になる。
NSDictionaryにキャストされると、キー値はNSObjectになるが、これはNSStringがNSObjectから継承されたクラスを使うからだ....
はっきり言って半分ぐらいしか理解できない。
しかし、最後に「ブリッジング99%は気がつかないだろう」ということなので、まあ、知らなくていいやって感じです(^^;)
今日はここまで。