0

XMLデータを読み取ってオブジェクトを作成していますが、オブジェクト変数の一部をfloatにする必要があります。そしてそれで- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)stringそれは明らかに文字列になり、私のfloat変数は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に設定し、後でfloatに変換する必要がありますか?

4

1 に答える 1

1

解析時に文字列として保存するだけです。次に、計算に必要な場合[NSString floatValue]は、上記のように float に変換します。

floatただし、値の戻り値を保持できないと思うので、代わりにNSString一時的に試してみてください。CGFloat

xml が文字列以外のものを保持する方法はないため、このアプローチは問題ありません。

于 2010-01-19T13:11:33.003 に答える