首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABPerson使用旧的图片数据

ABPerson使用旧的图片数据
EN

Stack Overflow用户
提问于 2011-11-21 22:29:59
回答 1查看 271关注 0票数 0

我有一个地址簿在我的应用程序,这是从一个网站由json填充。如果我在我的网站上添加了一个新的人,这个人会在下一次启动时被添加到应用程序地址簿中。如果我在我的网站上更新一个人的名字,它工作得很好..但是如果我给一个现有的人添加了一个新的图片,那么在重新加载之后,它仍然会显示来自苹果的旧的默认图片。如果我编译它,图片就会出现。有没有地址簿图片的缓存?

我尝试了以下几种方法:

代码语言:javascript
复制
BOOL imgBool = ABPersonHasImageData(aContact); -> false

代码语言:javascript
复制
ABPersonRemoveImageData(aContact, &anError); -> false because no picture in AB

我像这样添加了一张Persons图片:

代码语言:javascript
复制
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[[self.profsInSection objectAtIndex:indexPath.section] objectAtIndex:indexPath.row] bildUrl]]]];
NSData *picData = UIImageJPEGRepresentation(image, 0.9f);
[...]
ABPersonSetImageData(aContact, (CFDataRef)picData, nil);

没有错误,它只是保存了最后一张图片而忽略了新的图片...:(有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-21 22:32:50

在地址簿中应用更改后,您没有忘记调用保存函数吗?

代码语言:javascript
复制
ABAddressBookSave(addrBook, nil);

更新:所以,只要您使用的是ABUnknownPersonViewController,我就已经亲自尝试了以下代码,并且它在模拟器和设备上都可以正常工作

代码语言:javascript
复制
  ABRecordRef newPerson = ABPersonCreate();

  ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Smith", nil);

  UIImage *personImage = [UIImage imageNamed:@"image.jpg"];
  NSData *dataRef = UIImageJPEGRepresentation(personImage, 0.9f);

  CFErrorRef error = nil;
  bool result = ABPersonSetImageData(newPerson, (CFDataRef)dataRef, &error);

  ABUnknownPersonViewController *controller = [ABUnknownPersonViewController new];
    //controller.addressBook = addressBook;
  controller.allowsAddingToAddressBook = YES;
  controller.displayedPerson = newPerson;

  [self.navigationController pushViewController:controller animated:YES];
  [controller release];

我在测试这段代码时遇到的问题是,我在图像名称中输入了错误的内容,因此UIImage实例为空,NSData为空。在这一点上,ABPersonSetImageData没有给出错误。因此,请仔细检查您的UIImage实例是否为空。

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

https://stackoverflow.com/questions/8213399

复制
相关文章

相似问题

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