在swift中使用bridgeToObjectiveC()

bridgeToObjectiveC()会做什么? 这似乎像一个Swift对象转换为ObjectiveC对象。 这与types转换相同吗?

例如,我可以将一个Swifttypes的String转换为NSString

 var swingString:String = "test string" var correspondingNSString = swingString.bridgeToObjectiveC() // Using bridge var correspondingNSString = swingString as NSString // type casting 

我想知道两者是否相同?

我的理解是提供bridgeToObjectiveC() ,以便您不一定需要知道相应的objective-ctypes是什么; 编译器决定适当的types是什么。

例如:如果你有一个Any对象的数组,你可以使用map调用它们的每一个上的bridgeToObjectiveC() ,而不用担心是否有String,Int和Double值。

使用as关键字可以明确地select要将该值转换为的types。