jjzjj

ABAddressBookRef

全部标签

iphone - 将 Group of Persons 添加到 ABAddressBookRef,group added ok,但是 person 没有添加到 Group?

我有几行Objective-C代码,例如:ABAddressBookRefaddressBook;CFErrorReferror=NULL;addressBook=ABAddressBookCreate();ABRecordRefgroup=ABGroupCreate();ABRecordSetValue(group,kABGroupNameProperty,@"MyGroup",&error);ABRecordRefperson=ABPersonCreate();ABRecordSetValue(person,kABPersonFirstNameProperty,@"Huy11111

objective-c - 为什么我不需要 CFRetain() 这段代码中 ABAddressBookGetPersonWithRecordID() 的结果

我正在尝试使用地址簿,但我对内存管理的理解充其量只是马马虎虎。我的项目正在使用自动引用计数(ARC),但据我了解,ARC仅管理Objective-C领域的保留/释放。我知道我的第一个函数调用:ABAddressBookCreate()返回一个我“拥有”的ABAddressBookRef,因为我是从一个带有Create的方法中获取它的姓名。当我完成它时,我CFRelease它。我不明白的是ABRecordRef如何在此方法的过程中保持事件状态。我不应该CFRetain和CFRelease吗?如果我不保留/释放ABAddressBookRef,我在同一个类中有另一个几乎相同的方法会崩溃。A

ios - swift : Issue with accessing CFDictionaryRef for ABAddressBookRef

我已经在ObjC中收集了联系人的地址信息,ABMultiValueRefaddressProperty=ABRecordCopyValue(contactRef,kABPersonAddressProperty);CFDictionaryRefdict=ABMultiValueCopyValueAtIndex(addressProperty,0);if(dict){NSString*street=(NSString*)CFDictionaryGetValue(dict,kABPersonAddressStreetKey);}所以,等效的Swift代码是,letaddressProper

ios - 为什么需要为每个线程创建 ABAddressbookRef?

苹果说:Important:InstancesofABAddressBookRefcannotbeusedbymultiplethreads.Eachthreadmustmakeitsowninstance.但为什么呢?我知道某些特定的类或操作必须在主线程中完成。而且我知道有些对象不是线程安全的(这意味着如果这些对象被两个不同的线程同时访问会导致问题)。但是,如果您可以确保线程不安全的对象在任何时刻都只被一个线程访问,那么应该没有问题。到目前为止我理解正确吗?我不明白的是,为什么需要为每个线程创建像ABAddressbookRef这样的对象?为什么苹果会说这样的话?如果只是线程不安全

ios - 为什么需要为每个线程创建 ABAddressbookRef?

苹果说:Important:InstancesofABAddressBookRefcannotbeusedbymultiplethreads.Eachthreadmustmakeitsowninstance.但为什么呢?我知道某些特定的类或操作必须在主线程中完成。而且我知道有些对象不是线程安全的(这意味着如果这些对象被两个不同的线程同时访问会导致问题)。但是,如果您可以确保线程不安全的对象在任何时刻都只被一个线程访问,那么应该没有问题。到目前为止我理解正确吗?我不明白的是,为什么需要为每个线程创建像ABAddressbookRef这样的对象?为什么苹果会说这样的话?如果只是线程不安全

ios - 调用 CFRelease(ABAddressBookRef ref) 时崩溃

这是我的代码,运行最后一行CFRelease(addressBook),程序崩溃!帮帮我~!ABAddressBookRefaddressBook=ABAddressBookCreateWithOptions(NULL,NULL);NSMutableArray*groups=[NSMutableArrayarrayWithCapacity:ABAddressBookGetGroupCount(addressBook)];NSMutableArray*people=[NSMutableArrayarrayWithCapacity:ABAddressBookGetGroupCount(ad

iphone - ABAddressBookRef 在 iOS 6 上获取 0 个联系人

我有这个代码:CFArrayRefcontactsList=ABAddressBookCopyArrayOfAllPeople(addressBookRef);CFMutableArrayRefpeopleMutable=CFArrayCreateMutableCopy(kCFAllocatorDefault,CFArrayGetCount(contactsList),contactsList);CFArraySortValues(peopleMutable,CFRangeMake(0,CFArrayGetCount(peopleMutable)),(CFComparatorFunct

ios - ABAddressBookRef 在 iOS 中泄漏

我正在解析iOS中的地址簿,但Leaks工具报告了很大的内存泄漏,我似乎无法找到问题所在首先,我创建了地址簿。ABAddressBookRefaddressBook=ABAddressBookCreate();CFArrayRefallPeople=ABAddressBookCopyArrayOfAllPeople(addressBook);这就是我怀疑的泄漏,但是ABAddressBookRef和CFArrayRef得到了自动释放,对吗?我的其余代码在下面..CFIndexnPeople=ABAddressBookGetPersonCount(addressBook);NSMutab