首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将地址保存到ABRecordRef

无法将地址保存到ABRecordRef
EN

Stack Overflow用户
提问于 2014-09-25 17:31:42
回答 2查看 216关注 0票数 0

我正在尝试将地址添加到已挑选的联系人:

代码语言:javascript
复制
- (void)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker
                         didSelectPerson:(ABRecordRef)person{

    // Adding address
    ABMutableMultiValueRef addressMultipleValue = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
    NSMutableDictionary *addressDictionary = [[NSMutableDictionary alloc] init];
    [addressDictionary setObject:@"8-15 Dereham Place" forKey:(NSString *)kABPersonAddressStreetKey];
    [addressDictionary setObject:@"London" forKey:(NSString *)kABPersonAddressCityKey];
    [addressDictionary setObject:@"EC2A 3HJ" forKey:(NSString *)kABPersonAddressZIPKey];
    [addressDictionary setObject:@"United Kingdom" forKey:(NSString *)kABPersonAddressCountryKey];
    [addressDictionary setObject:@"gb" forKey:(NSString *)kABPersonAddressCountryCodeKey];

    ABMultiValueAddValueAndLabel(addressMultipleValue, (__bridge CFTypeRef)(addressDictionary), kABHomeLabel, NULL);

    ABRecordSetValue(person, kABPersonAddressProperty, addressMultipleValue, nil);
    CFErrorRef anError = NULL;
    BOOL didSet;

    didSet = ABAddressBookSave(_addressBook, NULL);
    if (!didSet) {
        NSError *er = (__bridge NSError *)(anError);
        NSLog(@"Error saving record: %@", er.localizedDescription);}else{
            NSLog(@"Record updated successfully");
        }
    CFRelease(addressMultipleValue);
}

正如我在console中看到的,保存它没有问题。但是,当我在联系人应用程序中打开联系人时,没有保存地址。

EN

回答 2

Stack Overflow用户

发布于 2014-10-01 23:40:39

发行说明非常有用。没有找到引用的项目:"ABPeoplePickerNavigationController.h“和新的"PeoplePicker: Picking a Person or Property sample project”。

苹果的“增强功能”已经冲刷了我的20个商业应用程序,这些应用程序依赖AB来获取联系信息。再次感谢苹果修复了一些没有损坏的东西。

票数 2
EN

Stack Overflow用户

发布于 2014-09-27 22:26:54

引用自iOS 8发行说明文档:

iOS 8的地址簿用户界面人员选择器已更改。添加了具有新

的新模式,其中应用程序不需要访问用户的联系人,并且不会提示用户访问。所选人员的临时副本将返回到应用程序。有关更多详细信息,请参阅ABPeoplePickerNavigationController.h。

请参阅新的PeoplePicker: Picking a Person or Property示例项目,演示新模式的用法。

因此,您将遇到新的API,在此之前,您可能只使用临时副本,而不是实际的数据库,它实际联系应用程序访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26035112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档