Субъективный Си / Говнокод #17794 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
[array_static removeAllObjects];
[array_static addObject:@"Files"];
[array addObjectsFromArray:[filemanager contentsOfDirectoryAtPath:DOCUMENTS error:nil]];

for (int l=0; l<array.count; l++) {
	for (int j=0; j<array.count; j++) {
		for (int i=0; i<array.count; i++) {
			if ([[array objectAtIndex:i] rangeOfString:@"."].location != NSNotFound) {
				[array removeObjectAtIndex:i];
			}
		}
	}
}

for (int i = 0; i<array.count; i++) {
	if (![array_static containsObject:[array objectAtIndex:i]]) {
		[array_static addObject:[array objectAtIndex:i]];
	}
}

Дали задание добавить фичу в один старый проект. Открыл проект, сижу и наслаждаюсь видом 8)

Запостил: OUrsus OUrsus, (Updated )

Комментарии (4) RSS

  • дай я угадаю - написал, потом еще два раза исправлял баг? Судя по количеству циклов.

    100% лучшее решение - через преобразование в множество, учитывая что потом проверяется, добавлен ли уже такой элемент
    Ответить
    • В сабже самый очевидный баг - это изменение коллекции во время перебора ее обьектов. А в первых двух вложенностях циклов вообще нет никакого смысла. И таких мест в проекте десятки. Но, ЧСХ, приложение не раз выкладывалось в AppStore =)
      Ответить
      • хочу не согласиться про изменение коллекции во время перебора - что вам мешает перебрать с изменением коллекции внутри цикла while? Даже с for будет работать. Точно не будет только с for-in

        А еще я могу исправить ваш код так, чтобы из вложенных циклов оставить только один и при этом приложение будет полностью рабочим и точно так же будет удалять лишние элементы из коллекции
        Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8