NSString stringWithFormat: для числового значения - PullRequest
0 голосов
/ 07 августа 2011

Работал над этим приложением в течение последних нескольких дней и только наконец получил данные XML, проанализированные в UITableView. Но основная проблема заключается в том, что анализируемые данные, отображаемые в таблице, не соответствуют тому, как они должны отображаться.

Например, у меня есть один элемент (в файле XML) со значением "134,9" (без кавычек), и если я использую '[NSString stringWithFormat: @ "£% @", [values ​​objectAtIndex: indexPath.row]];» он отображается в таблице как '{Lowest = "134,9 \ n \ t"; }».

Но если я использую "% d", это будет набор случайных чисел, которые даже не соответствуют 134,9?

Так вот код:

cell.textLabel.text = [NSString stringWithFormat:@"£%d", [prices objectAtIndex:indexPath.row]];

Вот как настраивается XML:

<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>

Наконец, бит, где я вызываю его с помощью парсера:

- (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">, я не смог бы получить это.

Заранее спасибо:)

Ответы [ 2 ]

4 голосов
/ 07 августа 2011

Но если я использую "% d", то получится набор случайных чисел

% d - это спецификатор формата для типа int, но вы передаете объект,Если вам просто нужно число, оставьте% d, но передайте правильное значение:

Item *item = [prices objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:@"£%d", item.price];

или что-то в том же духе, в зависимости от вашего объекта.

0 голосов
/ 07 августа 2011

Взгляните на Спецификаторы формата строки .Это облегчит ваше кодирование.

...