- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将应用程序文档目录中的 vcf 文件中的 vcard 数据检索到字符串中。该字符串很好,但 ABPersonCreatePeopleInSourceWithVCardRepresentation
抛出 BAD_ACCESS 错误。代码如下...
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(addressBook);
NSData *data=[vcardString dataUsingEncoding:NSUTF8StringEncoding];
CFDataRef vCardData = (__bridge CFDataRef)data;
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
if(granted)
{
NSLog(@"%@",vcardString);
CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);//BAD_ACCESS ERROR
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
ABRecordRef person = CFArrayGetValueAtIndex(vCardPeople, index);
ABAddressBookAddRecord(addressBook, person, NULL);
NSLog(@"added");
}
CFRelease(vCardPeople);
CFRelease(defaultSource);
ABAddressBookSave(addressBook, NULL);
}
else
NSLog(@"not granted");
这是 NSLog vcardString...
BEGIN:VCARD
VERSION:3.0
PRODID:-//Apple Inc.//iOS 6.1//EN
N:;Home;;;
FN:Home
EMAIL;type=INTERNET;type=HOME;type=pref:carljosdsdsewhnson.akasdssh@gmail.com
TEL;type=CELL;type=VOICE;type=pref:2323454645
PHOTO;ENCODING=b;TYPE=JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAICAgICAQICAgIC
....LOT OF GIBBERISH....
END:VCARD
最佳答案
您正在使用CFDataRef
按要求,但内存管理不正常。完成处理程序将不会在线执行,到那时data
将被解除分配。这使得vCardData
悬空指针造成错误的访问。要解决此问题,请代替 __bridge
使用 __bridge_retained
然后调用CFRelease
在 vCardData
完成后。
ABRecordRef defaultSource = ABAddressBookCopyDefaultSource(addressBook);
NSData *data=[vcardString dataUsingEncoding:NSUTF8StringEncoding];
CFDataRef vCardData = (__bridge_retained CFDataRef)data;
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
if(granted)
{
NSLog(@"%@",vcardString);
CFArrayRef vCardPeople = ABPersonCreatePeopleInSourceWithVCardRepresentation(defaultSource, vCardData);//BAD_ACCESS ERROR
CFRelease(vCardData);
for (CFIndex index = 0; index < CFArrayGetCount(vCardPeople); index++) {
//...
关于iphone - 导入 vcf vcard 文件时的 EXC_BAD_ACESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15701301/
我试图在这里找到错误,调试器在以下位置停止: Pthread_create renderer passed Renderer loop (re)started Process 84779 stoppe
我在以下行收到错误 EXC_BAD_ACESS: NSString *titleVarName = [[NSString alloc] initWithFormat:@"%@%@",@"occasio
我正在将应用程序文档目录中的 vcf 文件中的 vcard 数据检索到字符串中。该字符串很好,但 ABPersonCreatePeopleInSourceWithVCardRepresentation
我有这段加载 UITableView 的代码: - (int)numberOfSectionsInTableView:(UITableView *)tableView { if (tableV
我正在将 HTML 文本分配给 NSAttributedString。然后将此属性字符串分配给 cellForRowAtIndexPath 方法中的 UitableViewCell 中的 UILabe
我在尝试更改 SKSpriteNode 的位置时遇到了一个非常奇怪的崩溃。此崩溃发生在 iOS8 而不是 iOS9。 // if the powerup is full, spawn the icon
我是一名优秀的程序员,十分优秀!