如何在Objective-C中将二维整数数组对象添加到NSMutableArray?

Posted

技术标签:

【中文标题】如何在Objective-C中将二维整数数组对象添加到NSMutableArray?【英文标题】:How to add integer NSArrays objects with 2 dimention to NSMutableArray in Objective-C? 【发布时间】:2017-08-21 09:13:34 【问题描述】:

我有一个 NSMutableArray 并且想每次都添加一个带有整数参数的二维 NSArray。但是在使用该值之后,它们的 ID 不会显示为整数。我也尝试了@[i,j],但它没有用。这是我的代码:

resault = [[NSMutableArray alloc]initWithCapacity:40];

for (int i=0; i<5; i++)

   for (int j=0; j<5; j++)
   
      [resault addObject:@[@(i),@(j)]];
   

【问题讨论】:

你得到的输出是什么,你期望什么? @user1000 resault[0][0] 返回的 ID 不是整数 @SaMiGiMiX 还不确定你要返回什么,用真实的价值来表达 根据上面的代码,您将 NSNumber 存储在插槽中,因此要获取整数,您需要使用 [resault[0][0] integerValue] 请显示您想要的示例输出 【参考方案1】:

使用此代码 -

NSMutableArray*resault = [[NSMutableArray alloc]initWithCapacity:40];
for (int i=0; i<5; i++)

    NSMutableArray*array = [[NSMutableArray alloc]initWithCapacity:40];
    for (int j=0; j<5; j++)
    
        [array addObject:@[@(i),@(j)]];
    
    [resault addObject:array];

【讨论】:

我想稍后计算我的结果,但使用此代码我不能...... . .【参考方案2】:

你可以试试这个:

NSMutableArray * ma = [NSMutableArray new];
for (int i = 0; i < 10; i++)
    for (int d = 0; d < 10; d++)
        [ma addObject:[NSString stringWithFormat:@"%i%i",i,d]];
    

NSLog(@"id is %@", ma);

循环通过 I 循环,然后是 D 循环并作为 NSString 对象添加到数组中。如果您需要它们作为 NSNumbers,请稍后转换它们。如果您从 0 计数到 n,则可以使用单个 for 循环(例如,在上面的示例中从 0 到 100 可以工作),而如果您使用非数字 ID,则嵌套 for 循环效果更好。

如果您想保持 ID 前面的 0 字符低于 10,请使用单个 for 循环:

NSMutableArray * ma = [NSMutableArray new];
for (int i = 0; i < 100; i++)

    [ma addObject:[NSString stringWithFormat:@"%02d",i]];

NSLog(@"id is %@", ma);

使用你的方法:

NSMutableArray * ma = [NSMutableArray new];
for (int i = 0; i < 10; i++)
    for (int d = 0; d < 10; d++)
        [ma addObject:@[@(i),@(d)]];
    


int thirtiethI = [ma[30][0] intValue];
int thirtiethD = [ma[30][1] intValue];
NSLog(@"thirtieth: %i %i", thirtiethI, thirtiethD);

【讨论】:

我认为这是一种更聪明的方式,tnx【参考方案3】:

resault = [[NSMutableArray alloc]initWithCapacity:40];

for (int i=0; i<5; i++)

   for (int j=0; j<5; j++)
   
       [resault addObject:[NSArray arrayWithObjects:
           [NSNumber numberwithInt:i],
           [NSNumber numberWithInt:j],
           nil]
       ];
   

然后,您可以通过遍历结果数组并提取存储的 NSArray 并在其中排序第一个和第二个对象来访问 i,j 对。

【讨论】:

tnx 这是另一种方式【参考方案4】:

首先你要了解int、float这些基本类型是不能存入数组的

所以当你添加它@(i)时,这意味着[NSNumber numberWithInt: i]

数组是NSNumber的类型

如果你想把它拿出来

int result = [resault [30] [0] intValue];

【讨论】:

tnx 寻求帮助,这是真的

以上是关于如何在Objective-C中将二维整数数组对象添加到NSMutableArray?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建二维数组,大小在objective-c中作为变量给出

如何在 Objective-C 中将值附加到数组

在 Laravel 中将二维数组转换为 json 对象

在 Objective-C 中将 NSArray 过滤成一个新的 NSArray

如何在 Objective-C 中将对象类型转换为另一个类

如何在objective-c中将字节值转换为int