связывание элементов из трех разных массивов в Objective-C - PullRequest
0 голосов
/ 21 декабря 2010

Я пытаюсь создать подходящую игру для изучения арабского языка. Я заполнил 3 разных массива из 3 списков, и я использую UIPicker для отображения информации. Между заполнением массива и передачей в UIPickerView я перетасовал элементы массива. К сожалению, это приводит к тому, что я теряю начальный индекс элементов в массиве. Мне нужно иметь возможность вспомнить начальный индекс каждого элемента, чтобы проверить совпадение, поскольку каждый элемент в списках перечислены в одном и том же порядке (на разных языках).

Я использую следующий алгоритм перемешивания:

int randomSort(id obj1, id obj2, void *context ) {
// returns random number -1 0 1
return (arc4random()%18-9);    

}

- (void)shuffle {
// call custom sort function
[list sortUsingFunction:randomSort context:nil];
[list2 sortUsingFunction:randomSort context:nil];
[list3 sortUsingFunction:randomSort context:nil];

}

и следующая инициализация:

NSString *arabicword = [[NSBundle mainBundle] pathForResource:@"arabicword" ofType:@"plist"];
NSString *englishword = [[NSBundle mainBundle] pathForResource:@"englishword" ofType:@"plist"];      
NSString *pronunciation = [[NSBundle mainBundle] pathForResource:@"pronunciation" ofType:@"plist"];          
list = [[NSMutableArray alloc] initWithContentsOfFile:arabicword];
list2 = [[NSMutableArray alloc] initWithContentsOfFile:englishword];
list3 = [[NSMutableArray alloc] initWithContentsOfFile:pronunciation];

есть предложения? любая помощь будет высоко ценится:]

1 Ответ

4 голосов
/ 21 декабря 2010

Вместо этого создайте новый класс:

@interface Word : NSObject
@property (readonly) NSString *english;
@property (readonly) NSString *arabic;
@property (readonly) NSString *pronunciation;
@end

(Полная реализация оставлена ​​читателю.)

Использовать экземпляры этого класса в одном массиве. :)

...