首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSString stringWithFormat:对于数值

NSString stringWithFormat:对于数值
EN

Stack Overflow用户
提问于 2011-08-07 15:44:09
回答 2查看 3.2K关注 0票数 0

在过去的几天里,我一直在开发这个应用程序,最后才将XML数据解析成一个UITableView。但主要问题是,表中显示的实际解析数据并不是应该如何显示的。

例如,我有一个元素(在XML文件中)的值为"134.9“(不带引号),如果我使用'[NSString stringWithFormat:@”in %@“,prices objectAtIndex:indexPath.row];‘,它在表中显示为'{ Lowest = "134.9\n\t";}’。

但是如果我使用'%d‘,它会变成一堆随机数,甚至不匹配134.9?

下面是代码:

代码语言:javascript
复制
cell.textLabel.text = [NSString stringWithFormat:@"£%d", [prices objectAtIndex:indexPath.row]];

XML是这样设置的:

代码语言:javascript
复制
<PetrolPrices>
<Fuel type="Unleaded">
<Highest units="p">145.9</Highest>
<Average units="p">135.2</Average>
<Lowest units="p">131.9</Lowest>
</Fuel>
<Fuel type="Diesel">
<Highest units="p">149.9</Highest>
<Average units="p">139.3</Average>
<Lowest units="p">135.9</Lowest>
</Fuel>
<Fuel type="LRP">
<Highest units="p">136.9</Highest>
<Average units="p">136.9</Average>
<Lowest units="p">136.9</Lowest>
</Fuel>
<Fuel type="Super Unleaded">
<Highest units="p">152.9</Highest>
<Average units="p">142.3</Average>
<Lowest units="p">135.9</Lowest>
</Fuel>
<Fuel type="LPG">
<Highest units="p">76.9</Highest>
<Average units="p">76.9</Average>
<Lowest units="p">76.9</Lowest>
</Fuel>
<Link>
</Link>
</PetrolPrices>

最后,我使用解析器调用它的位置:

代码语言:javascript
复制
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{
    NSLog(@"ended element: %@", elementName);

    if ([elementName isEqualToString:@"Fuel"])
    {
        [item setObject:fuel_price forKey:@"Lowest"];

        [item setObject:fuel_type forKey:@"type"];

        [prices addObject:[item copy]];

        NSLog(@"adding fuel prices: %@ - %@", fuel_price, fuel_type);
    }

}

另外,如果有人能告诉我如何也能像在XML <Fuel type="Unleaded">中那样获取属性,我似乎无法检索到这些属性。

提前感谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-07 15:49:46

,但如果我使用'%d‘,它会出现一堆随机数

%d是int的格式说明符,但您传入的是对象。如果您只是想要数字,请保留%d,但传入正确的值:

代码语言:javascript
复制
Item *item = [prices objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"£%d", item.price];

或者其他类似的东西,这取决于你的对象。

票数 4
EN

Stack Overflow用户

发布于 2011-08-07 15:54:38

看看String Format Specifiers吧。这将使您的编码变得更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6971431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档