Как исправить предупреждение о макросе RELEASE_SAFELY? - PullRequest
0 голосов
/ 30 марта 2011

в моем классе я определяю следующий макрос

#define RELEASE_SAFELY(__POINTER){[__POINTER release]; __POINTER = nil;}

Но я получаю следующее предупреждение:

enter image description here

Как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

ABMultiValueRef - это базовый базовый объект, который должен быть освобожден с использованием CFRelease, а не -release.

#define RELEASE_SAFELY_CF(X)  { CFRelease(X); X = NULL; }

Если вы не хотите создавать 2 макроса, вы можете использовать приведение [(id)__POINTER release].Но я не рекомендую этого, поскольку нет правила, согласно которому все CFType могут отправляться методами Objective-C.

0 голосов
/ 30 марта 2011

определить RELEASE_SAFELY (__ POINTER) {[(id) __POINTER release];__POINTER = nil;}

добавьте "(id)", как сказано в предупреждении.

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