<div dir="ltr"><div>Minimal repro case below.  I&#39;m creating a custom NSCoder, but the &quot;encodeInt:forKey&quot; call is not dispatched properly to my overridden method when encoding an NSCalendar instance.</div><div><br></div><div>What am I missing here?  Without source code for any of this, I&#39;m at a dead end.</div><div><br></div><div>Thanks,</div><div>- john</div><div><br></div><div>================================================</div><div><br></div><div>    private class FooCoder : NSCoder {</div><div>        override var allowsKeyedCoding : Bool { return true }</div><div>        </div><div>        override func encode(_ objv: AnyObject?, forKey key: String) {</div><div>            print(&quot;\(key) \(objv)&quot;) // called</div><div>        }</div><div>        </div><div>        override func encode(_ intv: Int, forKey key: String) {</div><div>            print(&quot;\(key) \(intv)&quot;) // never called</div><div>        }</div><div>    }</div><div>    </div><div>    func testCoder() {</div><div>        Calendar.current.encode(with: FooCoder())  // crashes at runtime, result below</div><div>    }</div><div><br></div><div>Results in:</div><div><br></div><div><div>&quot;NSInvalidArgumentException&quot;, &quot;*** -encodeInt:forKey: only defined for abstract class.  Define -[_TtCC22Tests22TestsP33_1961FooCoder encodeInt:forKey:]!&quot;</div><div>(</div><div><span class="" style="white-space:pre">        </span>0   CoreFoundation                      0x00007fff84da34f2 __exceptionPreprocess + 178</div><div><span class="" style="white-space:pre">        </span>1   libobjc.A.dylib                     0x00007fff883caf7e objc_exception_throw + 48</div><div><span class="" style="white-space:pre">        </span>2   CoreFoundation                      0x00007fff84e0a4bd +[NSException raise:format:] + 205</div><div><span class="" style="white-space:pre">        </span>3   Foundation                          0x00007fff903ccdbd NSRequestConcreteImplementation + 229</div><div><span class="" style="white-space:pre">        </span>4   Foundation                          0x00007fff9035323b -[NSCalendar(NSCalendar) encodeWithCoder:] + 251</div></div></div>