Тема читает: «Как конвертировать 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 является автоматически выпущенным NSMutableArray
, готовым для добавления или удаления объектов по мере необходимости.