ios - Calling NSStringFromClass on a Swift Class in Objective-C returns module mangled name -
i aware of this question regarding how can readable class name of objective-c class in swift.
what want accomplish getting readable class name of swift class within objective-c without mangling class name module.
so if have swift class:
class foo: nsobject{}
then within objective-c love utilize convenient nsstringfromclass convert class name string.
i expect nsstringfromclass([foo class])
homecoming @"foo"
instead returns @"bar.foo"
withbar
being module name.
i came across gist seems little hacky , messy, there improve way? doesn't include typing class name manually string preferred.
swift 2.1
with swift 2.1 seems if sufficient
class yourclassname: nsobject { }
and use:
var str = string(yourclassname)
i have not tested objective-c code though
before swift 2.1:just set @objc(yourclassname)
in swift class:
@objc(yourclassname) class yourclassname: nsobject { }
and can utilize nsstringfromclass this:
nsstringfromclass(yourclassname.self)
it should work objective-c then.
ios objective-c swift xcode6
No comments:
Post a Comment