Ну, есть много вещей, которые не так с кодом, который вы разместили, но я думаю, это то, что вы хотите:
int x = 0;
NSMutableArray *combinedArr = [[NSMutableArray alloc] init]:
NSInteger count = [arrayDeals count];
for (int i = 0; i < count; i++) {
x++;
CustomObject *customObject = [CustomObject customObjectWithName:[arrayDeals objectAtIndex:i] andNumber:x];
[combinedArr addObject:customObject];
}
Чтобы дать вам представление о том, что не так с кодом, который вы разместили:
combinedArr = [[NSMutableArray alloc]initWithObjects:
[CustomObject customObjectWithName:[arrayDeals objectAtIndex:i] andNumber:x],nil];
Здесь вы создаете новый NSMutableArray
, которому вы назначаете новый объект для извлечения объекта из массива arrayDeals
. Но вы создаете NSMutableArray
для каждого элемента в массиве arrayDeals
и назначаете их одной и той же переменной.
Так что каждую итерацию вы пропускаете NSMutableArray
.
Также:
for (int i=0; i<=[arrayDeals count]-1; i++) {
совпадает с
for (int i=0; i < [arrayDeals count]; i++) {
но счетчик вызывается каждый раз, когда вы выполняете итерацию, поэтому в моем примере я сохранил счетчик в int, чтобы просто ускорить процесс.
Вы можете даже ускорить код с помощью быстрого перечисления:
NSInteger x = 0;
NSMutableArray *combinedArr = [[NSMutableArray alloc] init]:
for (id object in arrayDeals) {
id secondObject = [secondArray itemAtIndex:x];
// Arrays start at 0 so only up it after we've got the object.
x++;
CustomObject *customObject = [CustomObject customObjectWithName:object andNumber:x];
[combinedArr addObject:customObject];
}