0

我正在尝试制作一个学习阿拉伯语的配对游戏。我已经从 3 个 plist 中填充了 3 个不同的数组,并且我正在使用 UIPicker 来显示信息。在数组的填充和向 UIPickerView 的传输之间,我对数组的元素进行了洗牌。不幸的是,这导致我忘记了数组中项目的初始索引。我需要能够调用每个元素的初始索引以检查匹配项,因为 plist 中的每个元素都以相同的顺序列出(使用不同的语言)。

我使用以下洗牌算法:

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];

有什么建议么?任何帮助都感激不尽 :]

4

1 回答 1

4

相反,创建一个新类:

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

(完整的实现留给读者。)

在单个数组中使用该类的实例。:)

于 2010-12-21T18:26:55.047 回答