Я понимаю, что постоянный CStrings выделяется статически, а не на "куче".
Я также заметил, что у постоянного NSStrings есть большое количество, сохраняют количество. Это сохраняется, что постоянный NSStrings также выделяется статически, а не на "куче"?
Константы NSStrings относятся к классу NSConstantString
, и поэтому ведут себя как атомы в lisp; они висят вокруг. -> NSConstantStrings
выделяются статически. То есть, если вы используете @"cow"
в двух разных местах вашего кода, они будут ссылаться на один и тот же объект.
Причина, по которой NSConstantStrings
вообще имеют счетчик retain, заключается в том, что они наследуются от NSObject
.