сравнить 3 массива.приложение викторины.Как сначала показать неправильные ответы? - PullRequest
0 голосов
/ 20 февраля 2012

У меня есть три массива:

NSArray *Q = [1+1, 2+2, 3+3, 4+4, 5+5]; 
NSArray *A = [2, 4, 6, 8, 10]; 
NSArray *UserAnswers = [2, 4, 10, 17, 26]; 

В табличном представлении я хочу показать результаты, но неправильные ответы (в данном случае 10, 17, 26) должны быть показаны перед правильными ответами (вверху tableView).

Я публикую это здесь, потому что мне нужно чистое и умное решение, чтобы решить эту проблему. Есть идеи?

это грязный путь, кто-нибудь знает способ проще / чище?

 NSMutableArray *wrongs = [NSMutableArray new];
NSMutableArray *rights = [NSMutableArray new];
NSMutableArray *dataSource = [NSMutableArray new]; 

for (int x = 0; x<questions.count; x++) {
    NSDictionary *temp = [[NSDictionary alloc]initWithObjectsAndKeys:[questions objectAtIndex:x],@"q",[answers objectAtIndex:x],@"a",[userAnswers objectAtIndex:x], "ua", nil];

    if ([[userAnswers objectAtIndex:x]isEqual:[answers objectAtIndex:x]]) 
        [rights addObject:temp]; 
    else
        [wrongs addObject:temp]; 
}

[dataSource addObjectsFromArray:wrongs]; 
[dataSource addObjectsFromArray:rights]; 

[wrongs release]; 
[rights release]; 

1 Ответ

0 голосов
/ 20 февраля 2012

Из комментариев

Ваш путь выглядит достаточно чистым;возможно, добавьте ответы в правильные массивы, когда ответит пользователь?

...