传递'addObject:'的参数1会从指针目标类型中丢弃限定符

时间:2011-04-28 06:01:56

标签: objective-c xcode

我正在使用ABAddressbook.I创建了ABRecordref。我想将它添加到一个可变数组中。它已成功添加。但是有一个警告

警告

传递'addObject:'的参数1,从指针目标类型

中丢弃限定符

让我知道这个警告的原因,请给我解决方案。 提前致谢

1 个答案:

答案 0 :(得分:0)

ABRecordRef不是objc类型。它是一个不透明的类型,typedeffed为void*

在这些情况下,您必须将其强制转换为适当的兼容类型。例如,NSString和CFString是免费桥接的 - 将它们转换为ns / cf等效物是安全的。

文档说明ABRecordRefABRecord免费桥接,所以你写的是:

ABRecordRef record = MONGetTheRecord(arg);
[array addObject:(ABRecord*)record];
...

为了正确地将其类型转换为objc类型(addObject:作为其参数)。