- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 ABUnknownPersonViewController 来显示联系人 View 。
我尝试设置图像:
NSData *dataRef = UIImagePNGRepresentation([UIImage imageNamed:@"contact3.png"]);
ABPersonSetImageData(newPersonViewController.displayedPerson, (CFDataRef)dataRef, nil);
它不起作用,我不知道为什么。有什么想法吗?
最佳答案
您不能仅将 NSData
对象转换为 CFDataRef
;如 the docs 中所述,CFDataRef
是“对不可变 CFData 对象的引用”,它与 NSData
实例不同:
typedef const struct __CFData *CFDataRef;
要从 NSData
实例创建 CFDataRef
,您需要使用 CFDataCreate
方法,传递字节和长度:
NSData *dataRef = UIImagePNGRepresentation([UIImage imageNamed:@"contact3.png"]);
CFDataRef dr = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
另请注意,由于您自己创建了该对象,因此还必须按照 Core Foundation Ownership Policy 释放它。 ;您使用 CFRelease
函数释放 Core Foundation 对象的所有权:
CFRelease(dr);
这类似于Cocoa中的内存管理,一旦Core Foundation对象的保留计数达到零,它将被释放。
编辑: Stefan
在他的评论中完全正确,NSData
和 CFData
也是收费的 -与 Cocoa 一样,在 iPhone 上使用 Cocoa-Touch 进行免费桥接,所以我原来的答案是错误的。我的错,应该之前编辑过。
关于iphone - ABPersonSetImageData 不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1147698/
我使用 ABUnknownPersonViewController 来显示联系人 View 。 我尝试设置图像: NSData *dataRef = UIImagePNGRepresentation(
我正在尝试在每张联系人照片周围添加边框。我有创建此边框图像的工作代码和将其设置为联系人图像的工作代码: if (image) { NSData *dataRef = UIImagePNGRep
我正在开发一个与 AddressBook 联系人一起使用的 iPhone 应用程序。我正在尝试从地址簿中获取图像并进行编辑,然后保存该图像。 但我不知道如何更新和保存该图像。如果有人知道这一点,请给我
我是一名优秀的程序员,十分优秀!