在nsmutablearray中编辑内部数组中的值

时间:2013-10-27 17:41:18

标签: ios objective-c cocoa-touch

所以我有以下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?

谢谢!

2 个答案:

答案 0 :(得分:2)

这是一个(不可变的)数组,它包含两个类型为某个字典的对象。假设字典是可变的,那么请去:

(假设它被命名为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;

但请注意,这只适用于外部数组中的内部字典实际上是可变的。

答案 1 :(得分:0)

你的内心对象也是NSDictionaries。

您可以改为使用NSMutableDictionary。

但我认为现在是时候创建一个自己的类,而不是使用数组中的实例。