Ответ 1
Объект гласит: "Как преобразовать NSArray
в NSMutableArray
". Чтобы получить NSMutableArray
из NSArray
, используйте метод класса на NSMutableArray
+ arrayWithArray
:.
В вашем коде не содержится декларации для народов. Предполагая, что она объявлена как NSMutableArray
, вы можете столкнуться с проблемами, если попытаетесь рассматривать ее как таковую. Когда вы отправляете копию сообщения в NSMutableArray
, вы получаете неизменяемый объект NSArray
, поэтому, если вы попытаетесь добавить объект в скопированный NSMutableArray
, вы получите сообщение об ошибке.
CFArrayRef
является бесплатным мостом до NSArray
, поэтому вы можете упростить свой код следующим образом:
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
//NSMutableArray *tempPeoples = [NSMutableArray arrayWithArray:(NSArray*)allPeople];
// even better use the NSMutableCopying protocol on NSArray
NSMutableArray *tempPeoples = [(NSArray*)allPeople mutableCopy];
CFRelease(allPeople);
return tempPeoples; // or whatever is appropriate to your code
В приведенном выше коде tempPeoples является autoreleased NSMutableArray
готовым для добавления или удаления объектов по мере необходимости.