- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
// Досталось по наследству:
@try {
if([[items objectAtIndex:indexPath.row] performSelector:@selector(songsArray)]){
NSArray *songsArray = [[items objectAtIndex:indexPath.row] songsArray];
for(Song *song in songsArray){
[song setIsSelected:button.selected];
}
}
}
@catch (NSException *exception) {
NSLog(@"need fix in next time");
}
// переделал в
if ( [[items objectAtIndex:indexPath.row] respondsToSelector:@selector(songsArray)] )
{
NSArray *songsArray = [[items objectAtIndex:indexPath.row] songsArray];
for(Song *song in songsArray){
[song setIsSelected:button.selected];
}
}
guest 17.01.2012 21:24 # 0
guest 17.01.2012 21:41 # −2
guest 17.01.2012 21:59 # 0
lime 17.01.2012 23:20 # 0
guest 31.03.2012 01:42 # 0
id fromSongArrayObj = [items objectAtIndex:indexPath.row];
NSArray *songsArray = [fromSongArrayObj songsArray];
for(Song *song in songsArray) {
[song setIsSelected:button.selected];
}
}
Если id не поддерживает метод songsArray, то переменная songsArray в данном случае будет nil и цикл просто не выполнится. Можно еще if повесить, чтобы прологировать данный момент. Вот это я бы назвал более-менее нормально переделанный код.