1

我需要创建一个数组,其中每个对象都是一个 NSArray:

 NSMutableArray *AberdeenStores=[NSMutableArray alloc];

AberdeenStores=[AberdeenStores initWithObjects:[[NSArray alloc]initWithObjects:@"Aberdeen Name Store 1",@"Aberdeen Adress Store 1",@"Aberdeen Telephone store 1","", nil],[NSArray arrayWithObjects:@"Aberdeen Name Store 2",@"Aberdeen Adress Store 2",@"Aberdeen Telephone store 2", nil],[[NSArray alloc ]initWithObjects:@"Aberdeen Name Store 3",@"Aberdeen Adress Store 3",@"Aberdeen Telephone store 3", nil], nil];

这似乎导致崩溃。请问有什么问题吗?提前谢谢。

4

3 回答 3

4

你只是那里有一个错字。将第一个子数组中的 "" 替换为 @""

NSMutableArray *AberdeenStores=[NSMutableArray alloc];

AberdeenStores=[AberdeenStores initWithObjects:[[NSArray alloc]initWithObjects:@"Aberdeen Name Store 1",@"Aberdeen Adress Store 1",@"Aberdeen Telephone store 1",@"", nil],[NSArray arrayWithObjects:@"Aberdeen Name Store 2",@"Aberdeen Adress Store 2",@"Aberdeen Telephone store 2", nil],[[NSArray alloc ]initWithObjects:@"Aberdeen Name Store 3",@"Aberdeen Adress Store 3",@"Aberdeen Telephone store 3", nil], nil];
于 2012-04-30T14:45:59.090 回答
1

这是一个更具可扩展性的解决方案:

// Top Level Array
NSMutableArray *array = [[NSMutableArray alloc] init];
int size = 10;    

// Build sub level arrays
for(int i = 0; i < size; i++)
{
    NSMutableArray *subArray = [[NSMutableArray alloc] init];
    [array addObject:subArray];
}

// You can now use it like this:
[[array objectAtIndex:0] addObject:someObject];
NSObject *someObject = [[array objectAtIndex:0] objectAtIndex:0];

希望有帮助!

于 2012-04-30T14:49:11.670 回答
0

您在这里使用了变量和对象,并且各种错误。这是做你想做的事情的最佳方式,并且会很好地布局并且更好的可维护性。

NSMutableArray *AberdeenStores = [[NSMutableArray alloc] init];
[AberdeenStores addObject:[NSArray arrayWithObjects:@"Aberdeen Name Store 1",@"Aberdeen Adress Store 1",@"Aberdeen Telephone store 1",@"", nil]];
[AberdeenStores addObject:[NSArray arrayWithObjects:@"Aberdeen Name Store 2",@"Aberdeen Adress Store 2",@"Aberdeen Telephone store 2",@"", nil]];
[AberdeenStores addObject:... keep adding objects as you please];
于 2012-04-30T14:43:53.180 回答