To ensure that @properties to operate effectively the class needs to be a subclass of item. when The category isn't a subclass of item then the first time you are trying access the setter it in fact can make a different attribute with the shorter identify in place of accessing https://terraelegance.blogspot.com