sorting xml using tableview datasource method?
sorting xml using tableview datasource method?
- Subject: sorting xml using tableview datasource method?
- From: Chunk 1978 <email@hidden>
- Date: Wed, 4 Nov 2009 15:24:28 -0500
i'm failing to sort the xml data on my tableview. am i suppose to
make a model class for the data and have the table view display/sort
that instead? i'm quite with this one. am i suppose to enter values
in Sort Key and Selector IB fields for each column? doing so returns:
-[NSXMLElement compare:]: unrecognized selector sent to instance
0x162b6430. what am i missing here?
- (IBAction)parseData:(id)sender
{
[progressIndicator setHidden:NO];
[progressIndicator startAnimation:nil];
NSURL *url = [NSURL URLWithString:kXMLWebAddress];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:30]; //cachePolicy: 10.5 or higher
NSData *urlData = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:nil error:nil];
NSXMLDocument *doc = [[NSXMLDocument alloc] initWithData:urlData
options:0 error:nil];
[itemNodes release];
itemNodes = [[doc nodesForXPath:@"stations/station" error:nil] retain];
[tableView reloadData];
[progressIndicator setHidden:YES];
[progressIndicator stopAnimation:nil];
}
- (void)dealloc
{
[itemNodes release];
[super dealloc];
}
- (NSString *)stringForPath:(NSString *)xPath ofNode:(NSXMLNode *)node
{
NSError *error;
NSArray *nodes = [node nodesForXPath:xPath error:&error];
if ([nodes count] == 0)
return nil;
else
return [[nodes objectAtIndex:0] stringValue];
}
#pragma mark -
#pragma mark Table View Datasourse Methods
- (int)numberOfRowsInTableView:(NSTableView *)theTableView
{
return [itemNodes count];
}
- (id)tableView:(NSTableView *)theTableView
objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row
{
NSXMLNode *node = [itemNodes objectAtIndex:row];
NSString *xPath = [tableColumn identifier];
return [self stringForPath:xPath ofNode:node];
}
- (void)tableView:(NSTableView *)aTableView
sortDescriptorsDidChange:(NSArray *)oldDescriptors
{
[itemNodes sortUsingDescriptors:[aTableView sortDescriptors]];
[aTableView reloadData];
}
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden