-2

したがって、次の NSmutableArray があります。

Printing description of globals->_info:
<__NSCFArray 0x8a979c0>(
{
    rep = "name";
    PriceA = 150;
    PriceB = 150;
    nextInvoice = 1001000001;
},
{
    rep = "othername";
    PriceA = 150;
    PriceB = 150;
    nextInvoice = 1001000001;
}
)

nextInvoice を 1 ずつインクリメントするにはどうすればよいですか?

ありがとう!

4

2 に答える 2

2

これは、あるディクショナリの型の 2 つのオブジェクトを含む 1 つの (不変の) 配列です。辞書が変更可能であると仮定すると、次のようになります。

(名前がouterArrayであると仮定)

NSMutableDictionary *innerDict = [outerArray objectAtIndex:0];
NSNumber *aNumber  = [innerDict objectForKey:@"nextInvoice"];
NSNumber *bNumber  = [NSNumber numberWithInt: [aNumber intValue] +1];
[innerDict setObject:bNumber forKey:@"nextInvoice"];

どこから来たのかにもよりますが、このスタイルの方が読みやすいかもしれません: (うまくいくといいのですが、あまり使わないでください。誰かが間違いを見つけたら、自由に編集してください)

NSMutableDictionary *innerDict = outerArray [0];
NSNumber *aNumber  = innerDict [@"nextInvoice"];
NSNumber *bNumber  = @(aNumber intValue] +1);
innerDict[@"nextInvoice"] = bNumber;

ただし、これは、外側の配列内の内側の辞書が実際に可変である場合にのみ機能することに注意してください。

于 2013-10-27T18:00:50.180 に答える