Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
Т.е. по Вашему Вы нормально переделали? Ну хотя бы вот так сделали бы чтоли, чтобы была ясность:
id fromSongArrayObj = [items objectAtIndex:indexPath.row];
NSArray *songsArray = [fromSongArrayObj songsArray];
for(Song *song in songsArray) {
[song setIsSelected:button.selected];
}
}
Если id не поддерживает метод songsArray, то переменная songsArray в данном случае будет nil и цикл просто не выполнится. Можно еще if повесить, чтобы прологировать данный момент. Вот это я бы назвал более-менее нормально переделанный код.
id fromSongArrayObj = [items objectAtIndex:indexPath.row];
NSArray *songsArray = [fromSongArrayObj songsArray];
for(Song *song in songsArray) {
[song setIsSelected:button.selected];
}
}
Если id не поддерживает метод songsArray, то переменная songsArray в данном случае будет nil и цикл просто не выполнится. Можно еще if повесить, чтобы прологировать данный момент. Вот это я бы назвал более-менее нормально переделанный код.