2011-04-10 129 views
0
ABMutableMultiValueRef *address = (NSString *)ABRecordCopyValue(thisPerson, kABPersonAddressProperty); 
for (CFIndex i=0; i < ABMultiValueGetCount(address); i++) { 
    CFDictionaryRef dict = ABMultiValueCopyValueAtIndex(address, i); 

代码工作,但生成一个警告。任何线索?这是为什么会产生警告?

警告:FirstViewController.m:46:警告:初始化从兼容的指针类型

+0

请张贴警告过。 – Mat 2011-04-10 19:58:11

回答

1

我相信你得到一个警告,因为你分配一个NSString*价值为ABMutableMultiValueRef*变量。您应该只将一个指针变量分配给相同类型的指针。

+0

我该如何解决?你看,我用它来从多值 – 2011-04-10 20:22:38

+0

我知道,但我怎么解决它拉的数据?有什么建议么? Xcode的告诉我,他们是不一样的指针 – 2011-04-12 13:32:17

+0

不幸的是,我不知道究竟如何解决它。 ABRecordCopyValue返回一个CFTypeRef,它是一个通用指针类型。下面马克的答案可能是你需要去的路径 - 你可能需要转换其他一些CF *类型。也许它不是CFString,但它可能是以CF开头的其他内容。 – 2011-04-12 14:15:42

0

ABMutableMultiValueRefCFTypeRef,所以也许铸造的ABRecordCopyValueCFString的结果,而不是NSString将是简单的解决办法。

+0

这打破了应用程序。 (用CFString代替NSString *) – 2011-04-10 20:22:19

+0

@ Cocoa-Dev对不起,这是我最好的猜测。 :-)不幸的是,我还没有亲自使用Address Book的东西。 – 2011-04-11 17:24:33

+0

感谢马克的帮助。 :-) – 2011-04-12 13:31:45

相关问题