我一直在努力解决如何在我的NSarray中改变我的问题。我想让它从NSarray中提出10个问题,其中有50个问题,然后删除它们,这样它们就不会在其他40个问题出现之前再次显示出来。我的NSarray应该是这样的:
{
NSArray *quizArray = [[NSArray alloc] initWithObjects:
@"How much was David Beckham's deal worth upon signing for LA Galaxy?", @"$250m", @"$32.5m", @"$75m", @"$502m", @"3",
@"In which year did David beckham sign for LA Galaxy?", @"2006", @"2007", @"2008", @"2009", @"2",
@"In 2008, Rice-Eccles Stadium housed which MLS team for their home games?", @"Toronto FC", @"Real Salt Lake", @"Colorado Rapids", @"Houstion Dynamo", @"2",
@"Which of these teams, won the first MLS Cup?", @"Chicago Fire", @"Colorado Rapids", @"DC United", @"LA Galaxy", @"3",
@"Wich of these players have the record for most goals in a game?", @"Mamadou Diallo", @"Marco Etcheverry", @"Cobi Jones", @"Clint Mathis", @"4", nil];
self.theQuiz = quizArray;
[quizArray release];
}
我一直在网上搜索差不多2个星期,希望有些人可以帮助我! :)
答案 0 :(得分:1)
我曾经遇到过同样的问题。 我最终创建了一个名为“MyQuestion”的新类。 它的属性是问题的NSString,不同答案的NSMutableArray和标签的int。
然后你有一个'MyQuestion'的NSMutableArray。对象和洗牌这个数组的方法:
- (NSMutableArray *)shuffleMutableArray:(NSMutableArray *)newMutableArray{
BOOL seeded = NO;
if(!seeded)
{
srandom(time(NULL));
}
NSUInteger count = [newMutableArray count];
for (NSUInteger i = 0; i < count; ++i) {
// Select a random element between i and end of array to swap with.
int nElements = count - i;
int n = (arc4random() % nElements) + i;
[newMutableArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
return newMutableArray;
}
要么对所有对象进行随机播放,要么只有一个NSMutableArray问题,使用Tag属性可以找到属于该问题的答案。 希望这会有所帮助。
答案 1 :(得分:0)
首先,我要创建一个带有问题和几个答案的课程,以及一个正确的答案。
然后,您将拥有两个NSMutableArrays,一个用于未解决的问题,另一个用于询问问题。当询问了一个问题时,你将它从unasked数组中删除并将其添加到询问的数组中。
当unasked数组为空时,您可以移回所有问题或只更改对两个数组的引用。
如果您不想移动个别问题,而是有“问题集”,例如:一组中有10个问题。然后,您可以拥有问题数组的数组,并在添加该组中的所有问题时移动整个组。在这种情况下,顶级数组将是可变的,但是组测定可以是不可变的,因为其中的问题不会改变。