2013-02-17 3 views
0

У меня есть эти массивы, настроенные для перехода в NSDictionary, а затем они добавляются в NSMutableArray. Это делается для создания разделов.Итерация по массиву с использованием подсчета продолжается для дополнительного шага

ПРИМЕЧАНИЕ: Содержимое массивов является немного случайным, поскольку я просто что-то пробовал.

Теперь бит, который я ожидал, это то, что слово «Awesome !!» лишь повторно итерацию 3 х 3 раза графами как NSMutableArray и headArray только 3.

Так почему он повторно итерацию 4 х 3 раза, когда я использую знак <= оператора? Если это не будет сделано 3 раза, так как совпадение счетчика будет всего 3 раза?

Теперь я ценю, что количество секций установлено равным 0, которое может быть объяснением, но оно должно быть 0 в верхней части UITableView.

listOfItems = [[NSMutableArray alloc] init]; 
headerArray = [[NSArray alloc] initWithObjects:@"Country 1", @"Country 2", @"Country 3", nil]; 

NSArray *countriesToLiveInArray = [NSArray arrayWithObjects:@"Iceland", @"Greenland", @"Switzerland", @"Norway", @"New Zealand", @"Greece", @"Italy", @"Ireland", nil]; 
NSDictionary *countriesToLiveInDict = [NSDictionary dictionaryWithObject:countriesToLiveInArray forKey:@"Countries"]; 

NSArray *countriesLivedInArray = [NSArray arrayWithObjects:@"India", @"U.S.A", nil]; 
NSDictionary *countriesLivedInDict = [NSDictionary dictionaryWithObject:countriesLivedInArray forKey:@"Countries"]; 

NSArray *thirdArray = [NSArray arrayWithObjects:@"Row 01", @"Row 02", @"Row 03", @"Row 04", nil]; 
NSDictionary *thirdDictionary = [NSDictionary dictionaryWithObject:thirdArray forKey:@"Countries"]; 

if (headerArray.count == listOfItems.count) 
{ 
    for (section = 0; section <= listOfItems.count; section++) 
    { 
     NSLog(@"AWESOME!!"); 
    } 
} 

2013-02-17 20:10:06.323 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.324 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.325 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.326 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.327 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.328 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.330 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.331 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.332 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.332 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.334 TableView[3667:11303] AWESOME!! 
2013-02-17 20:10:06.335 TableView[3667:11303] AWESOME!! 

ответ

2

Нет. То, что вы делаете было бы целесообразно для 1-индексированные массивы. NSArray, однако, 0-индексируется. Что происходит в вашем цикле for, то section идет от 0 до listOfItems.count, то есть от 0 до 3, что означает 4 итерации (один для 0, 1, 2 и 3 соответственно). Вместо этого используйте оператор <.

См. Wikipedia article на полуоткрытых интервалах и нулевой нумерации.

+0

ah cool - да, я думал, что 0 будет испортить это, но я вижу по вашему объяснению, что у меня было замешательство где-то :-) - 5 минут, пока я не смогу принять ваш ответ :-) –

+0

@JeffKranenburg Не беспокойтесь, спасибо , – 2013-02-17 07:33:09

Смежные вопросы