Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 235 - Objective-C Compatibility

Swiftで遊ぼう!の古い記事-> Life-LOG OtherSide

Bridging
iOSObjective-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%は気がつかないだろう」ということなので、まあ、知らなくていいやって感じです(^^;)

今日はここまで。