In Swift a String structure is also treated as a class object like when using the NSCoder encodeObject(_:forKey:) method. I do know th
Ultimately, the bridging between String and NSString is quite simple.
NSString only has 2 instance variables (The string pointer nxcsptr, and the length nxcslen). String uses _StringCore, which only has 3 properties (_baseAddress, _countAndFlags, and _owner). The conversion back and forth is hard coded, and called explicitly by the compiler. There's no automatic system implemented for generating classes out of structs, or vice versa.
You'll have to implement a struct/class pair (like with String and NSString), and implement initializers that construct one from the other.