2010-01-19 8 views
0

Я читаю данные XML и создаю объекты, но мне нужно, чтобы некоторые из моих переменных объекта были плавающими. И с - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string он, очевидно, становится строкой, и мои переменные float будут установлены на 0.000000.XML XML parsing float data

В - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName Я попытался что-то подобное при установке значения для объекта, но это, по-видимому, несовместимые типы, поскольку setValue хочет ключ (id) (и я только понял, что temp был установлен на 0.000000 в любом случае, поэтому floatValue doesn не работайте).

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

Кто-нибудь есть какие-либо идеи, как решить эту проблему или я просто установить его на NSStrings в моем объекте и преобразовать его в плавает потом?

ответ

1

Просто сохраните его как строку при разборе. Затем, когда вам это нужно для расчетов, преобразуйте его в плавающий с [NSString floatValue], как вы это делаете выше.

Однако я думаю, что float не может удерживать значение NSString, поэтому попробуйте использовать его со своей температурой как CGFloat.

Невозможно, чтобы xml удерживал что-либо другое, что строки, так что этот подход в порядке.