In Key-Value Coding Programming Guide it states NSObject subclasses are KVC compliant.
Swift objects that inherit from NSObject or one of its subclasses are key-value coding compliant for their properties by default
Can custom objects(struct, classes) adopt NSKeyValueCoding and be KVC compliant?
Also, how is KVC given to an object just by subclassing NSObject?