19965


Stringを、NSMutableStringにcastする際、以下のようにmutableCopy()を使用します。

[code]

    var sample1: String = "aaabbb"
    var sample2: NSMutableString = sample1.mutableCopy() as! NSMutableString
    
[/code]

しかし、[String Structure
Reference](https://developer.apple.com/library/tvos/documentation/Swift/Reference/Swift_String_Structure/index.html#//apple_ref/swift/struct/s:SS)を見ても、StringはmutableCopyメソッドは持っていないようで、[NSObject
Class
Reference](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/)を確認すると、NSObjectが持っていました。

Stringは構造体のため、NSObjectを継承していないはずです。  
なぜ、StringでmutableCopy()が使用できるようのでしょうか？

XCode 7.1 Swift 2 を使用しています。

よろしくお願いします。


CC BY-SA 3.0
2015-12-14T06:30:31.063
19958
2015-12-14T09:20:49.923
question
swift
mutableCopy()について


String Structure ReferenceのObjective-C Bridgeに書かれています

ざっくりいうとStringはNSStringと同じものとして使えますということです

ですからStringはNSStringが使用できる全てのメソッドが使用可能です（細かく調べていないので一部例外があるかもしれません）


CC BY-SA 3.0
2015-12-14T09:20:49.923
19965
2015-12-14T09:20:49.923
2741
19958
answer