【问题标题】:Convert NSarray to twodimensional array将 NSarray 转换为二维数组
【发布时间】:2013-12-10 15:42:28
【问题描述】:

我有一个一维数组,其中包含不同数量的对象(取决于用户输入)

NSArray 被称为 homePlayersArray。这可能包含 2、3、5、6、4

问题是我想将其转换为二维数组,其中示例。

{2,0}, {3,}, {5,0}, {6,0},{4,0}

对象中的第一个值将由 NSarray(称为 homepPlayersArray),第二个值为 0。

获得这个的最好方法是什么?

【问题讨论】:

  • 为什么使用方括号?
  • 这只是为了展示二维数组
  • 为什么不使用 2 dim 数组?创建 2 个 dim 数组,不要打扰之间的转换。在objective-c 中没有2 个dim 数组,你应该像2 个dim 数组一样使用C。如果您需要这方面的帮助,请参阅此link

标签: objective-c


【解决方案1】:
//Your original array
NSArray *homePlayersArray = [[NSArray alloc] initWithObjects:
                             [NSNumber numberWithInt:2],
                             [NSNumber numberWithInt:3],
                             [NSNumber numberWithInt:5],
                             [NSNumber numberWithInt:6],
                             [NSNumber numberWithInt:4],nil];

//For your 2D array
NSMutableArray *secondArray = [[NSMutableArray alloc] initWithCapacity:[homePlayersArray count]];

//populate as required
for(int i=0;i<[homePlayersArray count];i++){
    NSArray *tempArray = [[NSArray alloc] initWithObjects:[homePlayersArray objectAtIndex:i],[NSNumber numberWithInt:0], nil];
    [secondArray addObject:tempArray];
}

//print out some results to show it worked
NSLog(@"%@%@",@"secondArray first object value 0: ",[[secondArray objectAtIndex:0] objectAtIndex:0] );
NSLog(@"%@%@",@"secondArray first object value 1: ",[[secondArray objectAtIndex:0] objectAtIndex:1] );
NSLog(@"%@%@",@"secondArray second object value 0: ",[[secondArray objectAtIndex:1] objectAtIndex:0] );
NSLog(@"%@%@",@"secondArray second object value 1: ",[[secondArray objectAtIndex:1] objectAtIndex:1] );

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2020-03-26
    • 2012-08-15
    • 2021-01-31
    • 2016-02-18
    • 2018-02-19
    相关资源
    最近更新 更多