gpt4 book ai didi

ios - ABPersonSocialProfile 应用崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:39 25 4
gpt4 key购买 nike

我在向 ABRecordRef 添加新社交资料时遇到问题。它总是在 ABAdressBookSave 上返回崩溃“[__NSCFString 计数]:发送到实例的无法识别的选择器”

ABMultiValueRef social = ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);
if(contact.socialTwitter != nil)
ABMultiValueAddValueAndLabel(social, (__bridge CFTypeRef)([NSDictionary dictionaryWithObjectsAndKeys:
(NSString*)kABPersonSocialProfileServiceTwitter, kABPersonSocialProfileServiceKey,
(__bridge CFStringRef)contact.socialTwitter, kABPersonSocialProfileUsernameKey,
nil]), kABPersonSocialProfileServiceTwitter, NULL);


ABRecordSetValue(record, kABPersonSocialProfileProperty, social, &error);
CFRelease(social);

最佳答案

我在保存新联系人时遇到了同样的问题。看来你不能像这样保存所有属性。下面的代码对我有用。

ABRecordRef aRecord = ABPersonCreate(); 
CFErrorRef anError = NULL;

// Username
ABRecordSetValue(aRecord, kABPersonFirstNameProperty, username, &anError);

// Phone Number.
ABMutableMultiValueRef multi = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multi, (CFStringRef)usercontact, kABWorkLabel, NULL);
ABRecordSetValue(aRecord, kABPersonPhoneProperty, multi, &anError);
CFRelease(multi);

// Company
ABRecordSetValue(aRecord, kABPersonDepartmentProperty, usercompany, &anError);

// email
NSLog(useremail);
ABMutableMultiValueRef multiemail = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiemail, (CFStringRef)useremail, kABWorkLabel, NULL);
ABRecordSetValue(aRecord, kABPersonEmailProperty, multiemail, &anError);
CFRelease(multiemail);

// website
NSLog(userwebsite);
ABMutableMultiValueRef multiweb = ABMultiValueCreateMutable(kABMultiStringPropertyType);
ABMultiValueAddValueAndLabel(multiweb, (CFStringRef)userwebsite, kABWorkLabel, NULL);
ABRecordSetValue(aRecord, kABPersonURLProperty, multiweb, &anError);
CFRelease(multiemail);

// Function
ABRecordSetValue(aRecord, kABPersonJobTitleProperty, userrole, &anError);

if (anError != NULL)
NSLog(@\"error while creating..\");

CFStringRef personname, personcompind, personemail, personfunction, personwebsite, personcontact;

personname = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty);
personcompind = ABRecordCopyValue(aRecord, kABPersonDepartmentProperty);
personfunction = ABRecordCopyValue(aRecord, kABPersonJobTitleProperty);
personemail = ABRecordCopyValue(aRecord, kABPersonEmailProperty);
personwebsite = ABRecordCopyValue(aRecord, kABPersonURLProperty);
personcontact = ABRecordCopyValue(aRecord, kABPersonPhoneProperty);

ABAddressBookRef addressBook;
CFErrorRef error = NULL;
addressBook = ABAddressBookCreate();

BOOL isAdded = ABAddressBookAddRecord (addressBook, aRecord, &error);

if(isAdded){

NSLog(@\"added..\");
}
if (error != NULL) {
NSLog(@\"ABAddressBookAddRecord %@\", error);
}
error = NULL;

BOOL isSaved = ABAddressBookSave (addressBook, &error);

if(isSaved) {

NSLog(@\"saved..\");
UIAlertView *alertOnChoose = [[UIAlertView alloc] initWithTitle:@\"Phone added successfully to your addressbook\" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@\"Ok\", nil];
[alertOnChoose show];
[alertOnChoose release];
}

if (error != NULL) {

NSLog(@\"ABAddressBookSave %@\", error);
UIAlertView *alertOnChoose = [[UIAlertView alloc] initWithTitle:@\"Unable to save this time\" message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:@\"Ok\", nil];
[alertOnChoose show];
[alertOnChoose release];
}

CFRelease(aRecord);
CFRelease(personname);
CFRelease(personcompind);
CFRelease(personcontact);
CFRelease(personemail);
CFRelease(personfunction);
CFRelease(personwebsite);
CFRelease(addressBook);

关于ios - ABPersonSocialProfile 应用崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com