Atomicity of Nonatomic/atomic
Read/write Permissions readwrite/readonly
Memory Management semantics
Assign The Set method only operates on simple assignments for the scalar type, cgfloat, or nsinteger, etc.
Strong "Owning relationship" sets a new value for this property, the set method retains the new value, releases the old value, and then sets the new value up
Weak When a non-owning relationship sets a new value for this property, the setting method neither preserves the new value nor releases the old value. This trait is similar to assign, but the property is also emptied when the object it refers to is destroyed (nil out)
unsafe_unretained The semantics of this trait are the same as assign, but it applies to the object type, which expresses a "non-owning relationship" ("not reserved", unretained), when the target object is destroyed , property values are not automatically emptied ("unsafe", unsafe), which differs from weak
copy of this trait expresses a relationship similar to strong. However, the set method does not retain the new value, but instead copies the copy
Method Name
Property key collation in @property