[{“Name”:“2.0”,“GroupName”:null},{“Name”:“Modern”,“GroupName”:null}]
Attribute | Description |
—– | —– |atomic | Implicit. Enables synchronization in synthesized accessor methods.nonatomic | Disables synchronization in the synthesized accessor methods.readwrite | Implicit. Synthesizes getter, setter and backing ivar.readonly | Synthesizes only the getter method and backing ivar, which can be assigned directly.getter=name | Specifies the name of getter method, implicit is propertyName.setter=name | Specifies the name of setter method, implicity is setPropertyName:. Colon : must be a part of the name.strong | Implicit for objects under ARC. The backing ivar is synthesized using __strong, which prevents deallocation of referenced object.retain | Synonym for strong.copy | Same as strong, but the synthesized setter also calls -copy on the new value.unsafe_unretained | Implicit, except for objects under ARC. The backing ivar is synthesized using __unsafe_unretained, which (for obejcts) results in dangling pointer once the referenced object deallocates.assign | Synonym for unsafe_unretained. Suitable for non-object types.weak | Backing ivar is synthesized using __weak, so the value will be nullified once the referenced object is deallocated.class | Property accessors are synthesized as class methods, instead of instance methods. No backing storage is synthesized.nullable | The property accepts nil values. Mainly used for Swift bridging.nonnull | The property doesn’t accept nil values. Mainly used for Swift bridging.null_resettable | The property accepts nil values in setter, but never returns nil values from getter. Your custom implementation of getter or setter must ensure this behavior. Mainly used for Swift bridging.null_unspecified | Implicit. The property doesn’t specify handling of nil values. Mainly used for Swift bridging.