iphone - 代码在添加电话联系人查询时崩溃

标签 iphone crash addressbook

我只能将陈列室名称添加到我的联系人中。但是,当我在代码中添加电话号码时,更多细节……我的代码崩溃了。任何建议,将不胜感激。这是我的代码

- (IBAction)AddContact
 {   
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef Showroom = ABPersonCreate();

//adding contact name as showroom name
ABRecordSetValue(Showroom, kABPersonFirstNameProperty, ShowroomName.text , nil);

//adding phone number
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType);
 ABMultiValueAddValueAndLabel(multiPhone, p_BcardLabel.text, kABPersonPhoneMainLabel, NULL);

 ABRecordSetValue(Showroom, kABPersonPhoneProperty, multiPhone,nil);
 CFRelease(multiPhone);
//adding emailaddress
 ABMutableMultiValueRef multiEmail =  ABMultiValueCreateMutable(kABMultiStringPropertyType);
 ABMultiValueAddValueAndLabel(multiEmail, email_BcardLabel.text, kABWorkLabel,   NULL);
 ABRecordSetValue(Showroom, kABPersonEmailProperty, multiEmail, @"");
 CFRelease(multiEmail);

 //adding URL
 ABMutableMultiValueRef multiURL = ABMultiValueCreateMutable(kABMultiStringPropertyType);
 ABMultiValueAddValueAndLabel(multiURL, url_BcardLabel.text, kABHomeLabel, NULL);
 ABRecordSetValue(Showroom, kABPersonURLProperty, multiURL, @"");
 CFRelease(multiURL);

显示以下消息
[Switching to thread 11779]
warning: Unable to read symbols for   /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3.2   (8H7)/Symbols/Developer/usr/lib/libXcodeDebuggerSupport.dylib (file not found).

最佳答案

如果您只想改善您的代码。我检查了您的代码,使其正常工作后,只需添加以下几行

ABAddressBookAddRecord(addressBook,Showroom, nil);


    ABAddressBookSave(addressBook,nil); 

    objABPersonViewController=[[ABUnknownPersonViewController alloc]init];

    objABPersonViewController.displayedPerson=Showroom;

    [self.navigationController pushViewController:objABPersonViewController animated:YES];


    CFRelease(Showroom);

如果您想使用我的,请检查一下。它还会将资源文件夹中名为abc.png的图像添加到联系人列表中。
 -(IBAction)addToAddressbook:(id)sender{ 
        NSString *fname=@"Person First Name";

        NSString *lname=@"Person Last Name";

        NSArray *arrayAdd=[[NSArray alloc]initWithObjects:@"street Name",@"city Name",@"country code",@"zip",nil];

        UIImage *image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"abc.png" ofType:nil]];

        [self addContact:fname:lname:arrayAdd:image];
    }

    -(void) addContact:(NSString *)firstname:(NSString *)lastname:(NSArray *)arrayAddress:(UIImage *)currentImage
    {
        ABAddressBookRef addressBook=ABAddressBookCreate();

        ABRecordRef person=ABPersonCreate();

        //set Image
        NSData * dataRef = UIImagePNGRepresentation(currentImage);

        ABPersonSetImageData(person, (CFDataRef)dataRef, nil);

        //set FirstName and LastName
        ABRecordSetValue(person, kABPersonFirstNameProperty,firstname, nil);

        ABRecordSetValue(person, kABPersonLastNameProperty,lastname, nil);


        //Add Address
        ABMutableMultiValueRef address=ABMultiValueCreateMutable(kABMultiDictionaryPropertyType);

        NSMutableDictionary *addressDictionary=[[NSMutableDictionary alloc]init];

        [addressDictionary setObject:[arrayAddress objectAtIndex:0] forKey:(NSString *)kABPersonAddressStreetKey];

        [addressDictionary setObject:[arrayAddress objectAtIndex:1]forKey:(NSString *)kABPersonAddressCityKey];

        [addressDictionary setObject:[arrayAddress objectAtIndex:2] forKey:(NSString *)kABPersonAddressCountryCodeKey];

        [addressDictionary setObject:[arrayAddress objectAtIndex:3] forKey:(NSString *)kABPersonAddressCountryKey];

        ABMultiValueAddValueAndLabel(address, addressDictionary, kABHomeLabel, nil);

        ABRecordSetValue(person, kABPersonAddressProperty, address, nil);

        ABAddressBookAddRecord(addressBook,person, nil);

        ABAddressBookSave(addressBook,nil); 

        objABPersonViewController=[[ABUnknownPersonViewController alloc]init];

        objABPersonViewController.displayedPerson=person;

        [self.navigationController pushViewController:objABPersonViewController animated:YES];


        CFRelease(person);

    }

对于任何进一步的查询,只需询问...乐于助人

关于iphone - 代码在添加电话联系人查询时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8292622/

相关文章:

iphone - 如何通过 objective-c 中的编码将pdf文件转换为图像

iphone - 数组中缺少 UIView

iphone 模拟器(10.3) 时间未根据 mac OS (10.13) 中的时区显示

c++ - 如何保护日志免受应用程序崩溃?

c++ - 如何解决RemoveAStud()中未删除节点并崩溃的问题

ios - iPhone 地址簿电话号码

iphone - 在 Cocos2d 中使用自定义字体

ios - 如何阅读此崩溃日志?

c# - 一种启动地址簿和选择电子邮件收件人的方法

ios - 地址簿:区分 kABSourceTypeExchangeGAL 类型的来源