The meanings of these keywords are related to the memory management implemented by the property:
retain
: the object will retain a new value set for its property, and will release old values
copy
: the object will take a copy of the new value, and will release the old value
assign
: the object will not do any memory management of its property value.
See "setter semantics" in the Objective-C language documentation.
In an automatic reference counting scenario, the following memory management keywords are used:
strong
: the object keeps a strong (i.e. owning) reference to its property
weak
: the object keeps a zeroing weak reference to its property