NSString *pickle = @"pickbarn";
pickle is a pointer. It points to an NSString in memory.
backpack.itemName = pickle;
now your backpack property itemName points to the same NSString in memory.
pickle = @"fuffle";
pickle now points to a new NSString in memory. But we did not change the backpack property itemName. It still points to @"pickbarn" in memory.
This will work just like the attribute of your strong or copy property.
If you want to know more about attributes ( copy , strong ), check out this thread .
source share