Согласно стандартным соглашениям о присвоении имен Какао, метод, начинающийся со слова create
, должен возвращать не принадлежащую ему ссылку.Вы возвращаете сохраненный объект, но ожидается, что вы вернете не сохраненный объект.Таким образом, когда анализатор смотрит на -createImageWithContext:
, он видит, что он должен вернуть не сохраненный объект, но фактически возвращает оставшийся объект.Отсюда первое предупреждение.
В -fooWithContext:
он смотрит на ваш код и говорит: «Эй, в соответствии с моими соглашениями об именах, createImageWithContext:
должен вернуть ссылку, не являющуюся владельцем.им не принадлежит! Это ПЛОХО! "Отсюда второе предупреждение.
Вы можете исправить это, изменив имя -createImageWithContext:
на что-то, начинающееся с new
, например -newImageWithContext:
.Или вы можете аннотировать метод с помощью макроса cf_returns_retained
, чтобы указать статическому анализатору, что метод возвращает ссылку на владельца.