iPhone XML разбирает данные с плавающей точкой - PullRequest
0 голосов
/ 19 января 2010

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

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

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

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

1 Ответ

1 голос
/ 19 января 2010

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

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

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

...