views:

130

answers:

1

I'm reading XML data and creating objects, but I need some of my object variables to be floats. And with the - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string it obviously becomes a string and my float variables will be set to 0.000000.

In the - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName I tried something like this when setting the value to the object, but it's apparently incompatible types as setValue wants a (id)key (and I just realized that temp was set to 0.000000 anyways, so the floatValue doesn't work either).

if([elementName isEqualToString:@"longitude"]) 
{
    float temp = [currentElementValue floatValue];
    [myObj setValue:temp forKey:elementName];
}

Does anyone have any idea how to solve it or do I just have to set it to NSStrings in my object and convert it to floats afterwards?

+1  A: 

Hi

Just save it as a string when parsing. Then when you need it for calculations convert it to a float with [NSString floatValue] as you do above.

However I think that float can't hold the value NSString returns so try it with your temp as a CGFloat instead.

There is no way for the xml to hold anything other that strings so this approach is OK.

RickiG