如何修复RELEASE_SAFELY宏警告?

时间:2011-03-30 06:55:46

标签: objective-c xcode

在我的班级中我定义了以下宏

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

但是我得到了这个警告:

enter image description here

我该如何解决?

2 个答案:

答案 0 :(得分:2)

ABMultiValueRef是一个Core Foundation对象,应该使用CFRelease释放,而不是-release

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

如果您不想创建2个宏,则可以使用强制转换[(id)__POINTER release]。但我不建议这样做,因为没有规则说所有CFType都可以发送Objective-C方法。

答案 1 :(得分:0)

定义RELEASE_SAFELY(__ POINTER){[(id)__POINTER release]; __POINTER = nil;}

添加“(id)”演员,就像警告说的那样。