此代碼工作確定在iOS 5.1和也做在iPhone模擬器與iOS 6,它靜靜地失敗在我的iPhone 4運行iOS 6的工作最終的結果是,我無法將個人添加到「通訊錄」應用。無論是下面的代碼片段工作(日誌如下每個):無法在設備訪問聯繫人源在iOS 6中
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(_addressBook);
NSLog(@"2 - defaultSource = %@", defaultSource);
AB:無法查詢編譯語句(ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties): SELECT ROWID,名稱,ExternalIdentifier,類型,ConstraintsPath,ExternalModificationTag,ExternalSyncTag,帳戶ID, Enabled,SyncData,MeIdentifier,Capabilities FROM ABStore WHERE Enabled =?;
2012年9月24日11:00:36.731 QR電子名片[193:907] 2 - defaultSource =(CPRecord:0x1f59fd50 ABStore)
當我試圖將一個人添加到地址簿中我得到這個(似乎是因爲來源無效,即使它看起來可能是從上面):
2012-09-24 11:18:32.231 QR vCard [220:907] ABAddressBookAddRecord error =操作cann沒有完成。 (ABAddressBookErrorDomain錯誤1)
我以爲我可以得到所有的源,然後挑一個,但下面的回報根本就沒有:
CFArrayRef allSources = ABAddressBookCopyArrayOfAllSources (_addressBook);
NSLog(@"2 - allSources = %@", allSources);
AB:無法查詢編譯語句( ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties): SELECT ROWID,名稱,ExternalIdentifier,類型,ConstraintsPath,ExternalModificationTag,ExternalSyncTag,帳戶ID,啓用,SyncData,MeIdentifier,能力FROM ABStore WHERE啓用=;
2012年9月24日10:58:09.908 QR電子名片[177:907] 2 - =免責()
我發現,在iOS 6中,您需要用戶的PERMISSION才能將人員添加到AddressBook。蘋果再次保護我們。添加到代碼的複雜性... –