Управление памятью свойства копирования Objective-C – NSString

#objective-c #memory-management #properties #nsstring #copy

#objective-c #управление памятью #свойства #nsstring #Копировать

Вопрос:

У меня есть NSString объявленный как @property (nonatomic,copy) NSString *text в классе. Когда я хочу получить эти данные из текстовой переменной, я вызываю из своего другого класса NSString *text = self.objectInstance.text . После выполнения анализа Xcode сообщает в строке, что я объявляю текстовую переменную

1. Свойство возвращает объект Objective-C с числом сохранений 1

И затем после этой строки

2. Утечка объекта: выделенный объект не упоминается позже в этом пути выполнения и имеет количество сохранений 1

Чего я не понимаю, так это того, что я не пишу alloc, new или copy, поэтому мне не нужно освобождать этот объект?

Комментарии:

1. На самом деле это немного странно. Вы уверены, что вы не переписали самостоятельно один из методов получения, и этот возвращает скопированную или сохраненную версию объекта?

2. на 100% уверен, что я не переписывал метод получения.

Ответ №1:

Выяснил, что было не так.

Я использовал имя свойства newFoo , которое заставило компилятор подумать, что я вернул новый объект.

Итак, заметка для себя: разберитесь в соглашениях об именовании cocoa.

Комментарии:

1. Спасибо, что дали нам знать. Никогда не забывайте об этом!