Ios 如何在二维数组中保存两个数组?

Ios 如何在二维数组中保存两个数组?,ios,objective-c,arrays,multidimensional-array,Ios,Objective C,Arrays,Multidimensional Array,我是iOS开发新手。我想在二维数组中保存两个不同的数组(array1&array2)。我知道如何在二维数组中直接保存数据,但不能在一个数组中保存两个不同的数组 NSString* path = [[NSBundle mainBundle] pathForResource:@"Aasvogel" ofType:@"txt"]; NSString* content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncod

我是iOS开发新手。我想在二维数组中保存两个不同的数组(
array1
&
array2
)。我知道如何在二维数组中直接保存数据,但不能在一个数组中保存两个不同的数组

NSString* path = [[NSBundle mainBundle] pathForResource:@"Aasvogel" ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];

NSArray* foo = [content componentsSeparatedByString: @","];

NSMutableArray *array1 = @[], *array2 = @[];
for ( int i = 0; i < [foo count]; i++ )
{
    NSString* day = foo[i];
    if ( i % 2 == 0 ) { [array1 addObject:day];}
    else { [array2 addObject:day];}
}
// and here i have populated two arrays (array1 and array2)
// Now i want to save these arraya in below two dimensional array (dataArray) atIndex:0 and at Index:1


NSMutableArray *dataArray = [[NSMutableArray alloc] initWithCapacity: 2];
[dataArray addObject:[NSMutableArray arrayWithObjects:@"e",
                                                         @"el",
                                                         @"ale",
                                                         @"vela",
                                                         @"gavel",nil] atIndex:0];

[dataArray addObject:[NSMutableArray arrayWithObjects:@"Represents 50 in Roman numeral",
                                                         @"Building Wing",
                                                         @"Pub Brew",
                                                         @"Thin Parchment or membranes",
                                                         @"chairperson's hammer",nil] atIndex:1];
NSString*path=[[NSBundle mainBundle]pathForResource:@“Aasvogel”类型:@“txt”];
NSString*content=[NSString stringWithContentsOfFile:路径编码:NSUTF8StringEncoding错误:NULL];
NSArray*foo=[内容组件由字符串分隔:@“,”];
NSMutableArray*array1=@[],*array2=@[];
对于(int i=0;i<[foo count];i++)
{
NSString*day=foo[i];
如果(i%2==0){[array1 addObject:day];}
else{[array2 addObject:day];}
}
//这里我填充了两个数组(array1和array2)
//现在我想将这些数组保存在索引为0和索引为1的二维数组(dataArray)中
NSMutableArray*dataArray=[[NSMutableArray alloc]initWithCapacity:2];
[dataArray addObject:[NSMutableArray arrayWithObjects:@“e”,
@“el”,
@“啤酒”,
@“贝拉”,
@“木槌”,无]指数:0];
[dataArray addObject:[NSMutableArray arrayWithObjects:@“以罗马数字表示50”,
@“建筑翼”,
@“酒吧酿造”,
@“薄羊皮纸或薄膜”,
@“主席之锤”,无索引:1];

我不确定iOS中的二维数组,但如果我是你,我会将这两个数组保存在字典中,例如

 NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
 [dict setvalue:yourArray forKey:@"FirstArray"];
 [dict setvalue:yourSecondArray forKey:@"SecondArray"];

并相应地使用它。

使用for loop从2个不同的数组生成2d数组, 遵循这个结构

int i, j;
for(i = 0; i < nrows; i++)
    {
    for(j = 0; j < ncolumns; j++)
        array[i][j] = 0;
    }
}
inti,j;
对于(i=0;i

也许它会对你有所帮助

没有二维(或更高)空间的
NSArray
。如果您在iOS或OS X中确实需要一个n维数组对象,您当然可以自己滚动,或者您可以创建一个
NSArray
NSArray
实例(哪些是列,哪些是行完全由您决定)。在这种情况下,您可以通过执行以下操作添加项目

[[outerArray objectAtIndex:0] addObject:@"Foo"];
[[outerArray objectAtIndex:1] addObject:@"Bar"];
也就是说,对于您正在解决的问题,在我看来,
NSDictionary
可能更合适,例如,使用键
@“e”、@“el”
和值
@“用罗马数字表示50”、@“Building Wing”

如果您担心的是
NSDictionary
的键没有按排序顺序保存,则始终可以将键提取为数组并对其排序。或者,如果密钥定期更改,您可能希望使用更复杂的方法(例如,保留一个单独的已排序密钥数组,并在添加到
NSDictionary
时将其插入正确的位置)

另外,你知道在现代Objective-C中你可以写

@[ @"a", @"b", @"c" ]


与上面使用的非常详细的表单不同?

这是在2d数组中添加任何内容的方式,即objective-c中的数组

NSMutableArray *array 1 = [[NSMutableArray alloc]init];
NSMutableArray *array 2;

for(int col = 0;col <5;col++){

       array2 = [[NSMutableArray alloc]init];
         for(int row = 0;row<5;row++){

              [array2 addObject:myItems];

    }
       [array1 addObject:array2];

}
NSMutableArray*array 1=[[NSMutableArray alloc]init];
NSMutableArray*array 2;

对于(int col=0;col我最近在我的应用程序中实现了2D数组。请检查以下代码,该代码可在

int容量;
@属性(非原子,强)NSMutableArray*outerArray;
#定义KCRL2DRARRAYEMPTYKEY@“KCRL2DRARRAYEMPTYKEY”
-(id)initWithRows:(int)x列:(int)y
{
if(self=[super init])
{
容量=y;
self.outerArray=[NSMutableArray];
对于(int i=0;i
您可以试试这个

NSArray * firstArray, *secondArray;
NSArray * mainArray= [[NSArray alloc]initWithObjects: firstArray, secondArray, nil];

两个数组不足以创建二维数组。例如,
array1+array2
不是
array1*array2
。或者它只是
[dataArray addObject:array1];[dataArray addObject:array2]
?不太清楚…@trojanfoe,但我使用它作为硬代码,因为您可以看到我的代码的第二部分,在分配dataArray时,我已经用值填充了数组。可能重复:-1:他使用的是NSString数组,而不是原始数据类型。此外,您还没有编写任何关于数组的内容,整个代码看起来像from取自C代码。
int capacity;
@property (nonatomic, strong) NSMutableArray *outerArray;

#define kCRL2DArrayEmptyKey @"kCRL2DArrayEmptyKey"

- (id) initWithRows:(int)x columns:(int)y
{
    if (self = [super init])
    {
        capacity = y;
        self.outerArray = [NSMutableArray array];
        for (int i = 0; i < x; i++) {
            NSMutableArray *innerArray = [NSMutableArray array];
            for (int j = 0; j < y; j++) {
                [innerArray addObject:kCRL2DArrayEmptyKey];
            }
            [self.outerArray addObject:innerArray];
        }
    }
    return self;
}
NSArray * firstArray, *secondArray;
NSArray * mainArray= [[NSArray alloc]initWithObjects: firstArray, secondArray, nil];