如何在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中作为变量给出