#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. Спасибо, что дали нам знать. Никогда не забывайте об этом!