2011-04-10 156 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

相關問題