2013-01-22 41 views
1

我該如何添加一個網站到iphone/ipad地址簿的聯繫人? 我設法添加電子郵件,電話號碼,但我無法對網站做同樣的事情。 目前,我正在使用此代碼有寫在地址簿中的網站和顯示,但是點擊我得到它顯示的形式寫電子郵件如何將網站添加到iphone/ipad地址簿?

 const CFStringRef siteLabel = CFSTR("Site"); 
     ABMutableMultiValueRef multiEmail = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
     ABMultiValueAddValueAndLabel(multiEmail, sito, siteLabel, NULL); 
     ABRecordSetValue(newPerson, kABPersonEmailProperty, multiEmail, &error); 
     CFRelease(multiEmail); 

回答

3

您需要使用kABPersonSocialProfileProperty財產和kABPersonSocialProfileURLKey鍵。

例如爲:

ABMutableMultiValueRef multiURL = ABMultiValueCreateMutable(kABPersonSocialProfileProperty); 
    ABMultiValueAddValueAndLabel(multiURL, url, siteLabel, NULL); 
    ABRecordSetValue(newPerson, kABPersonSocialProfileURLKey, multiURL, &error); 
+0

不幸的是,當我啓動這個Ipad崩潰。它說:無法返回類型回調函數爲:無法識別的選擇器發送到實例0x1e8d4a00 2013年1月23日11:17:無法識別的選擇器發送到實例0x1e8d4a00 2012-01-23 11:17:59.357 Myapp [15926:907] 59.363 ForumPalermo [15926:907] ***由於未捕獲異常'NSInvalidArgumentException',原因:' - [__ NSCFString count]:無法識別的選擇器發送到實例0x1e8d4a00' libC++ abi.dylib:終止調用拋出異常 –

+0

解決了!長寧在這裏和那裏!謝謝! ABMutableMultiValueRef multiURL = ABMultiValueCreateMutable(kABMultiStringPropertyType); ABMultiValueAddValueAndLabel(multiURL,url,siteLabel,NULL); ABRecordSetValue(newPerson,kABPersonURLProperty,multiURL,&error); CFRelease(multiURL); –

1

保羅使用的代碼解決了,修改一點點!

ABMutableMultiValueRef multiURL = ABMultiValueCreateMutable(kABMultiStringPropertyType);   
ABMultiValueAddValueAndLabel(multiURL, url, siteLabel, NULL); 
ABRecordSetValue(newPerson, kABPersonURLProperty, multiURL,&error); 
CFRelease(multiURL); 
+0

我在我的代碼中有一個拼寫錯誤 - 無法在我的頭腦中編譯!我的閱讀是你應該使用kABPersonSocialProfileProperty,儘管你的解決方案可以工作。請接受我的回答:-)。 –

+0

這是允許返回0,直到用戶maull與本地的社交聯繫人,這不會發生,直到他試圖刪除Facebook帳戶,例如在這種情況下,警報出現,並詢問是否要ma聯繫或不?其他明智的返回0值:) – Omarj

+0

不知道,對不起:) –