【问题标题】:Error occurs when I convert NSMutableArray to NSArray将 NSMutableArray 转换为 NSArray 时发生错误
【发布时间】:2011-01-05 12:48:55
【问题描述】:

我想将 NSMutableArray 转换为 NSArray 以给出错误代码

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);  
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

tempPeoples=[[NSMutableArray alloc]init];

for(int i=0;i<nPeople;i++){

    ABRecordRef i1=CFArrayGetValueAtIndex(allPeople, i);
    [tempPeoples addObject:i1];

//[peoples addObject:i1];

}// end of the for loop

// Peoples is NSArray
// peoples=[[NSArray alloc] initWithArray: tempPeoples];

peoples=[NSArray arrayWithArray:tempPeoples];

请帮忙

【问题讨论】:

  • 相同的代码,相同的问题,但比您之前的问题描述更少:How to convert NSArray to NSMutableArray
  • 请解释您在哪一行得到错误,以及究竟是什么错误。 @Abizem 也是正确的 - 您已经发布了一个类似的问题,并且该问题的答案是正确的。
  • 阿里。没有得到解决方案没有理由再次发布相同的问题。您在原始问题中被要求提供更多代码/信息;你应该已经回答了这些请求。
  • 好的,抱歉,我找到了解决办法,谢谢

标签: nsmutablearray


【解决方案1】:

我使用以下代码找到了解决方案

 ABAddressBookRef addressBook = ABAddressBookCreate();

NSArray *allPeople = (NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook);  
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

tempPeoples= [NSMutableArray arrayWithCapacity:0];

for(int i=0;i<nPeople;i++){

    ABRecordRef i1=CFArrayGetValueAtIndex(allPeople, i);

    NSString* name = (NSString *)ABRecordCopyValue(i1,kABPersonFirstNameProperty);

    [tempPeoples addObject:name];

//  [peoples addObject:i1];

}// end of the for loop

peoples=[NSArray arrayWithArray:tempPeoples];

【讨论】:

    猜你喜欢
    • 2011-06-01
    • 2011-03-14
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多