Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - (void)shuffle {
- if (!mReady) return;
- NSMutableArray *result = [NSMutableArray array];
- NSMutableArray *questionsCopy = [mQuestions mutableCopy];//[NSMutableArray arrayWithArray:mQuestions];
- do {
- int randomIndex = 0;
- randomIndex = arc4random() % [questionsCopy count];
- [result addObject:[questionsCopy objectAtIndex:randomIndex]];
- [questionsCopy removeObjectAtIndex:randomIndex];
- } while (([questionsCopy count] > 0));
- [mQuestions removeAllObjects];
- [mQuestions setArray:result];
- }
- #pragma mark -
- - (void)parserDidStartDocument:(NSXMLParser *)parser {
- mReady = NO;
- [mQuestions removeAllObjects];
- }
- - (void)parserDidEndDocument:(NSXMLParser *)parser {
- mReady = YES;
- dispatch_async(dispatch_get_main_queue(), ^{
- if (mDelegate && [mDelegate respondsToSelector:@selector(quizGeneratorDidLoad:)]) {
- [mDelegate quizGeneratorDidLoad:self];
- }
- });
- if (mCurrentElement) {
- [mCurrentElement release];
- mCurrentElement = nil;
- }
- if (mCurrentQuestion) {
- [mCurrentQuestion release];
- mCurrentQuestion = nil;
- }
- if (mCurrentAnswer) {
- [mCurrentAnswer release];
- mCurrentAnswer = nil;
- }
- if (mMutableString) {
- [mMutableString release];
- mMutableString = nil;
- }
- }
- - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {
- if ([elementName isEqualToString:@"question"]) {
- mCurrentQuestion = [[VTQuestion alloc] init];
- }
- if ([elementName isEqualToString:@"title"]) {
- // nothing to do here
- }
- if ([elementName isEqualToString:@"answers"]) {
- // nothing to do here
- }
- if ([elementName isEqualToString:@"answer"]) {
- mCurrentAnswer = [[VTAnswer alloc] init];
- NSString *correctAttr = [attributeDict objectForKey:@"correct"];
- mCurrentAnswer.correct = [correctAttr boolValue];
- }
- mCurrentElement = [elementName copy];
- }
- - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
- NSString *string = [NSString stringWithString:mMutableString];
- [mMutableString setString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
- if ([mCurrentElement isEqualToString:@"title"]) {
- mCurrentQuestion.title = mMutableString;
- }
- if ([elementName isEqualToString:@"answer"]) {
- mCurrentAnswer.title = mMutableString;
- [mCurrentQuestion addAnswer:mCurrentAnswer];
- [mCurrentAnswer release];
- }
- if ([elementName isEqualToString:@"answers"]) {
- }
- if ([elementName isEqualToString:@"question"]) {
- [mQuestions addObject:mCurrentQuestion];
- [mCurrentQuestion release];
- }
- [mCurrentElement release];
- mCurrentElement = nil;
- [mMutableString release];
- mMutableString = nil;
- }
- - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
- if (mMutableString == nil) {
- mMutableString = [[NSMutableString string] retain];
- }
- [mMutableString appendString:string];
- }
Add Comment
Please, Sign In to add comment