У меня есть следующие функции:Почему Кланг жалуется на все мои автореализованные объекты?
- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
kCFAllocatorDefault,
(CFStringRef)self,
NULL,
CFSTR("?=&+/\r\n"),
kCFStringEncodingUTF8
);
return [result autorelease];
}
Почему Clang дает мне следующие жалобы?
- 1 вызов функции «» CFURLCreateStringByAddingPercentEscapes возвращает объект ядра Foundation с +1 сохранить счетчик (владеет ссылка)
- 2 Объект отправлено сообщение -autorelease
- 3 Объект вернулся к абоненту в качестве ссылки, владеющего (сингл сохранить отсчет передается абоненту)
- 4 объекта над-autoreleased: объект был послан -autorelease но объект имеет нулевой (локально видимые) сохраняют отсчеты
к Насколько я знаю, это соответствует рекомендациям Apple относительно управления памятью и владения объектами. Должен ли я явно освобождать объект? Эта ошибка возникла 19 раз в моем проекте, причем при подобных обстоятельствах. Что я делаю не так?
Хороший вопрос ... У меня такая же проблема, и я тоже не понимаю, что случилось. Может быть, это ошибка в clang ... –
Может быть, но я считаю, что трудно поверить, поскольку объекты с автореализацией не совсем неясны. Это также происходит, когда я устанавливаю авторекламу с помощью + alloc и -init. – 2009-05-12 22:40:38