In essence, this is a sports scoreboard app for iOS. I need to allow users to select a value for "Round", then display only the cells with that value. (For reference, currently my table returns every game of the season so far, I'd like to display them one round at a time.)
I wasn't having any success with simple things like if statements, so I'm turning to you guys.
Here's my code,
XMLParser.m:
I wasn't having any success with simple things like if statements, so I'm turning to you guys.
Here's my code,
XMLParser.m:
Code:
#import "XMLParser.h"
@implementation XMLParser
@synthesize matchups = _matchups;
NSMutableString *currentNodeContent;
NSXMLParser *parser;
Soccer *currentMatchup;
bool isStatus;
-(id) loadXMLByURL:(NSString *)urlString
{
_matchups = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
parser = [[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
[parser parse];
return self;
}
-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
currentNodeContent =(NSMutableString *) [string stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"Date"])
{
currentMatchup = [Soccer alloc];
isStatus = YES;
}
}
-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if (isStatus) {
if ([elementName isEqualToString:@"Round"])
{
currentMatchup.round = currentNodeContent;
}
if ([elementName isEqualToString:@"HomeTeam"])
{
currentMatchup.homeTeam = currentNodeContent;
}
// etc. etc., there are a lot of elements loaded
}
if ([elementName isEqualToString:@"Match"])
{
[self.matchups addObject:currentMatchup];
if (currentMatchup.timeElapsed == nil)
{
currentMatchup.timeElapsed = @"F";
}
currentMatchup = nil;
currentNodeContent = nil;
}
}
@end