Рассмотрим следующее заявление от "Big Nerd Ranch: Objective-C Программирование" - Глава 21: Object Instance переменные и свойства:Является ли подсчет ссылок таким же, как учет владения?
Когда объект имеет переменную экземпляра объекта, объект с указателем, как говорят, собственный объект, на который указывают.
Теперь рассмотрим следующий сценарий:
#import <Foundation/Foundation.h>
int main(int arc, const char * argv[])
{
@autoreleasepool {
NSString *message = @"Hello, world!";
}
return 0;
}
Здесь сообщение объект имеет один (1) ссылка. Но ... у него есть владелец?
Если строго придерживаться цитируемого определения, нет объекта с указателем ссылающегося этот NSString. Означает ли это, что сообщение имеет одну (1) ссылку, но нет (0) владельцев?
И, если это так, что принимает ARC при принятии решения о том, следует ли освобождать объект? Количество ссылок или количество владения?
Ваш код не полезен, потому что нет значимого подсчета ссылок, владения или освобождения. Строковые литералы имеют статическое время жизни. Они существуют от начала процесса до конца. –