ahti
(Lukas Stabe 🙃)
1
I stumbled across this behaviour a few days ago, took me quite a while to figure out what was happening
:
import Foundation
@objc protocol P { @objc(doF) optional func f() -> Int }
class Gen<T>: NSObject, P {}
class NoGen: NSObject, P {}
class NoGen1: NoGen {
func f() -> Int {
return 42
}
}
(NoGen1() as P).f?() // 42, works
class Gen1: Gen<Any> {
func f() -> Int {
return 42
}
}
(Gen1() as P).f?() // nil <----------
class Gen2: Gen<Any> {
@objc(doF) func f() -> Int { // explicitly set objc name
return 42
}
}
(Gen2() as P).f?() // 42, works again
Seems like the information about the proper @objc names gets lost for subclasses of generic classes.
Is this a known bug or limitation?
jrose
(Jordan Rose)
2
Bug, I think! And I didn't see one in a quick JIRA search that covered it, so please file a new one!