We have some code where a class is nested in an extension. After opening the project in Xcode 9, we get the 'Nested class has unstable name' warning.
When using Xcode auto-fix, it generate an @objc with some (generated?) param.
For example:
struct Something {
}
extension Something {
@objc(_TtCV16MyProject9Something4Some) class Some: NSObject, NSCoding {
required init?(coder aDecoder: NSCoder) {
}
func encode(with aCoder: NSCoder) {
}
}
}
All this compiles. But what the heck is this _TtCV16MyProject9Something4Some?
It seems to be unique because if we use the same one in two places, it will not compile (some generic project level compiler error).
If I replace the _TtCV16MyProject9Something4Some with anything else (say @objc(Something)), the project compiles fine, but that does not shad any more light really.
One important question, is the param randomly generated or is it an actual link to a real bridging name?