This is a screenshot of some of the results of calling objc_copyClassNamesForImage()
on the iOS 12 App Store binary. Why are some mangled, while others are not?
1 Like
The ObjC runtime will demangle "simple" names that consist of a non-private, non-generic top-level class (or protocol), on the grounds that people need to be able to use those for Interface Builder and other sources of dynamic lookup. But the canonical name of a Swift class (without a custom @objc
name) is an old-style mangled name.
2 Likes
Thanks! Interesting.
Does this mean the demangled "simple" names will work with objc_getClass
while demangled "complex" names won't?