Что на самом деле делает следующая строка?
string = @"Some text";
Предполагая, что "строка" объявлена таким образом в заголовке:
NSString *string;
Что на самом деле здесь делает "="? Что он делает со счетчиком ссылок "string"?
string
не является строкой.
string
на самом деле также не является каким-либо другим видом объекта Какао.
string
- это переменная, которую вы создали для хранения экземпляра NSString. Оператор присваивания помещает что-то в переменную *. В приведенном выше примере вы создаете литеральную строку и помещаете ее в переменную.
Поскольку string
является переменной, а не объектом Какао, у нее нет счетчика ссылок.
Назначение объекта где-либо может продлить срок службы объекта в собранном мусоре (только на Mac). Подробнее см. Руководство по программированию управления памятью для какао .
* Или массив C. Не путайте их с массивами Какао; они не взаимозаменяемы, и вы не можете использовать оператор присваивания, чтобы поместить вещи в коллекцию Какао (во всяком случае, не в Objective-C).