[swift-users] Possible swift 3 method rewrite issue with NSRequestConcreteImplementation ?

Brent Royal-Gordon brent at architechies.com
Mon Jul 18 20:33:11 CDT 2016

> Hi Tony - when I add that attribute, I get an error at compile-time:
> Objective-C method has a different selector from the method it overrides ('encodeInt:forKey:' vs. 'encodeInteger:forKey:')
> If I update to encodeInteger:forKey as the fix describes, it compiles, but I'm getting the same original problem at runtime.  i.e. "encodeInt:forKey: only defined for abstract class"
> Any other ideas?  See the same thing over there?  You should be able to paste that into a new swift 3 test.

If you look at the NSCoder documentation, you'll see 25 methods in the Swift version of the "Encoding General Data" section, and 27 (non-deprecated) in the Objective-C version. `-encodeInt:forKey:` has no Swift equivalent. I'm not sure what the other missing method is.

I think this is probably a bug or design oversight, and I'd recommend you file a radar against Foundation. If this is a primitive method for NSCoding, it needs to be accessible from Swift.

Brent Royal-Gordon

More information about the swift-users mailing list