【发布时间】:2013-02-06 21:17:09
【问题描述】:
好的,我基本上需要找到一种方法来更好地管理 100 个 NSMutableArrays 数据。
喜欢,(我实际上并没有这样做):
NSMutableArray *array1;
NSMutableArray *array2;
NSMutableArray *array3;
//etc..
我需要具有多个方面的东西,例如:
NSMutableCombinationArray *theMassiveArray;
[theMassiveArray addObject:theObject forArray:0 atIndex:0];
最后我想做这样的事情:
//in applicationdidfinishlaunching
loopCount = 0;
- (void) frameTimer:(NSTimer*)timer { //called every second
startingValue = 0;
for (int i = 1; i <= 100; i++)
{
NSString *dmxValues = [NSString stringWithFormat: @"%@,%@,%@,%@,%@", [DMXChannelArray objectAtIndex:startingValue], [DMXChannelArray objectAtIndex:startingValue+1], [DMXChannelArray objectAtIndex:startingValue+2], [DMXChannelArray objectAtIndex:startingValue+3], [DMXChannelArray objectAtIndex:startingValue+4]];
[theMassiveArray addObject:dmxValues forArray:i-1 atIndex:loopCount];
startingValue = startingValue + 5;
}
loopCount = loopCount + 1;
}
//NOTE DMXChannelArray is updated in another class with current DMX values from a controller.
所以DMX有512个通道,每个阵列需要容纳5个通道。这是一个记录应用程序,基本上以每秒一次的分辨率存储 500 个 DMX 通道值。
我该怎么做?最好的方法是什么?我显然想避免编写 100 个 NSMutableArrays 并手动完成。
作为参考,当录制结束时,用户选择他想要导出多少组(5 个通道),然后根据该数量,另一个 for 循环将通过 NSMutableCombinationArray 并导出最终数组。
【问题讨论】:
-
一个建议是简单地将它们全部添加到字典中。然后,您可以为每个数组分配一个很好的人类可读键。如果您需要更改数组中的值,只需使用其键将其拉出,然后进行更改。或者,制作一个完全符合您要求的自定义对象。毕竟你是个程序员!
-
在这种情况下,我需要为每一行 DMX 设置一个密钥吗?或者您可以将数据添加到特定键的对象而不是覆盖它吗?
标签: objective-c macos cocoa nsmutablearray