Я просто немного очищаю свой код и обнаружил несколько строк в функции, в которых я не уверен, что они вызывают утечки памяти.
Буду признателен за любые идеи.
Заранее спасибо!
В следующем коде переменная filepath является NSURL, а имя файла - объектом NSString, определенным как свойства. Атрибут определения имеет значение «копировать».
Вот код:
-(BOOL)isEqual:(id)object
{
if ( self == object)
return YES;
if (!object || ![object isKindOfClass:[self class]])
return NO;
if ( ![[[self filepath] path] isEqual:[[object filepath] path]])
return NO;
if (![[self filename] isEqualToString:[object filename]])
return NO;
if (![[self filesize] isEqualToString:[object filesize]])
return NO;
if (![[[self filepath ] absoluteURL] isEqual:[[object filepath] absoluteURL]])
return NO;
if ( !([[[self filepath ] absoluteURL ] isFileURL ] && [[[object filepath] absoluteURL ] isFileURL ]))
return NO;
return YES;
}
Насколько я понимаю, свойство с атрибутом копирования вернуло бы объект с счетом сохранения +1. Это означало бы, что у меня должны быть утечки памяти при каждом операторе if.
Это правильно?