0

このコードの問題は何ですか?? NSArray から NSMutableDictionary にデータを入れようとしていますが、最初の nsarray を 2 つに分割してからデータを nsdcitionary に送信したくありません。

問題は、NSLog de mutabledictionary を実行すると、たまたま NSArray からの最後のデータである 1 つの項目だけが返されることです。

 NSString *str = @"13:00,2.00,13:05,2.03,13:10,2.07,13:15,2.01,13:20,2.08,13:25,2.10,13:30,2.15";
NSArray *arrayFinal = [str componentsSeparatedByString:@","];

 NSMutableDictionary *dict = [NSMutableDictionary new];
for (int i = 0; i < [arrayFinal count ]; i = i + 2) {
    [dict setObject:[arrayFinal objectAtIndex:i] forKey:@"hora"];
    [dict setObject:[arrayFinal objectAtIndex:i+1] forKey:@"preco"];

}

結果は次のとおりです。

2013-09-04 20:27:33.732 separa[1438:c07] {
hora = "13:30";
preco = "2.15";
}

どんな助けでも大歓迎です。

4

3 に答える 3

1
for (int i = 0; i < [arrayFinal count ]; i = i + 2) {
    [dict setObject:[arrayFinal objectAtIndex:i+1] forKey:[arrayFinal objectAtIndex:i]];
}
于 2013-09-05T00:04:56.740 に答える
0

2 つ (時間と価格) を独自の NSMutableArray に分離し、各配列をキーの 1 つとして格納する必要があります。次のようになります。

NSMutableArray *hora = [NSMutableArray alloc] init];
NSMutableArray *preco = [NSMutableArray alloc] init];

NSString *str = @"13:00,2.00,13:05,2.03,13:10,2.07,13:15,2.01,13:20,2.08,13:25,2.10,13:30,2.15";
NSArray *arrayFinal = [str componentsSeparatedByString:@","];

NSMutableDictionary *dict = [NSMutableDictionary alloc] init];
for (int i = 0; i < [arrayFinal count ]; i = i + 2) 
{
    [hora addObject:[arrayFinal objectAtIndex:i];
    [preco addObject:[arrayFinal objectAtIndex:i+1];
}

[dict setObject:hora forKey:@"hora"];
[dict setObject:preco forKey:@"preco"];

おそらく私のやり方とは違うかもしれませんが、あなたが探しているコンセプトだと思います。

于 2013-09-04T23:52:32.063 に答える