How are the two set methods of NSMutableDictionary different

  ios, question

NSMutableDictionary has setObejct:forKey: and setValue:forKey.
At ordinary times, I didn’t pay too much attention to the difference between the two when I used them. They were used indiscriminately.
Will this have any impact? What is the difference between the two?

setObject:forKeyAs long as the key of this product is not nil, what is stored in dict inside is only the reference of the object.

setValue:forKeyThe key of this product must be string. It looks like dict will copy the entire value and save it.