После первого завершения внутреннего цикла счетчик o
будет равен количеству массива, поэтому он больше не войдет в цикл.Чтобы это работало, вы должны сбрасывать счетчик o
на каждой итерации внешнего цикла:
while (i<c){
o = 0;
while (t > o)
...
Редактировать : для более ясного кода (и, вероятно, лучшей производительности) вы можете использовать быстрое перечислениевместо обычных циклов for / while:
for (NSString *searchId in whatsNewArray1){
for (YourObject *obj in dames){
if ([[obj productId] isEqualToString:searchId])
[finalWhatsNew addObject: obj];
}
}
Edit2 : 2-й цикл также можно исключить, используя NSPredicate для фильтрации массива:
for (NSString *searchId in whatsNewArray1){
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"productId == %@",searchId];
[finalWhatsNew addObjectsFromArray:[dames filteredArrayUsingPredicate:predicate]];
}