Анализатор XCode выдает неправильную проблему «потенциальной утечки памяти»? - PullRequest
0 голосов
/ 13 декабря 2011

Я пишу такую ​​функцию для создания CGPath:

+(CGPathRef)CGPathCreateRoundrect:(CGRect)rect radius:(CGFloat)radius {
    CGMutablePathRef path = CGPathCreateMutable();
    ......
    CGPathCloseSubpath(path);
    return path;
}

Анализатор сообщает, что в первой строке кода создается объект, который может быть утечкой. Но я хочу создать новый объект в этой функции и передать право собственности вызывающей стороне. И имя функции содержит ключевое слово «Создать». Это ошибка "Анализатора"?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Анализатор здесь работает правильно. Право собственности передается только методами с именами copy, init или некоторыми их вариантами.

Возвращаемый объект должен быть автоматически освобожден.

0 голосов
/ 13 декабря 2011

Это происходит потому, что, согласно пониманию компилятора, метод +() всегда будет возвращать автоматически выпущенную переменную, которой нет в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...