After declaring the property attribute, there are 2 implementation options
@synthesize
During the compiler, let the compiler automatically generate getter/setter methods.
When there is a custom storage or retrieval method, the customization will block the automatic generation of the method
@dynamic
Tell the compiler not to automatically generate getter/setter methods to avoid warnings during compilation
Then by Implement your own access methods
or access methods to dynamically create bindings at runtime: Mainly used when CoreData implements NSManagedObject subclasses, and the Core Data framework dynamically generates subclass attributes when the program is running