Iphone 如何在没有键的情况下设置NSDictionary

Iphone 如何在没有键的情况下设置NSDictionary,iphone,ios,ipad,Iphone,Ios,Ipad,我在字典中存储了两个数组: array1=[[NSArray alloc]initWithObjects:a,b,c,d,e, nil]; array2=[[NSArray alloc]initWithObjects:1,2,3, nil]; NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:array2]; 如果我运行,我得到的错误如下: -[NSDictionary initWithObjects

我在字典中存储了两个数组:

array1=[[NSArray alloc]initWithObjects:a,b,c,d,e, nil];
array2=[[NSArray alloc]initWithObjects:1,2,3, nil];
 NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:array2];
如果我运行,我得到的错误如下:

-[NSDictionary initWithObjects:forKeys:]: count of objects (0) differs from count of keys (1)'
现在我只想为a,b,c设置字典,键为:1,2,3

由于无法编辑数组,因此无法对其进行编辑


如何使用NSMutableArray处理第一个数组
从中删除d&e

使用NSMutableArray处理第一个阵列
从中删除d&e

整个阵列的单个键很容易设置:

NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:@"Array"];
如果要为数组中的每个对象添加一个键,则如下所示:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
int key = 1;
for (NSString *str in array1) {
    [dict setObject:str forKey:[NSString stringWithFormat:@"%d",key]];
    key++;
}

希望这有帮助

整个数组的单个键很容易设置:

NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:@"Array"];
如果要为数组中的每个对象添加一个键,则如下所示:

NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
int key = 1;
for (NSString *str in array1) {
    [dict setObject:str forKey:[NSString stringWithFormat:@"%d",key]];
    key++;
}

希望这有帮助

为nil值添加键没有意义

NSRange range = NSMakeRange(0, MIN(array1.count, array2.count));
NSDictionary * dic=[[NSDictionary alloc]initWithObjects:[array1 subarrayWithRange:range]
                                                forKeys:[array2 subarrayWithRange:range]];

为nil值添加键是没有意义的

NSRange range = NSMakeRange(0, MIN(array1.count, array2.count));
NSDictionary * dic=[[NSDictionary alloc]initWithObjects:[array1 subarrayWithRange:range]
                                                forKeys:[array2 subarrayWithRange:range]];
用作:

array1=[[NSArray alloc]initWithObjects:a,b,c,d,e, nil];
array2=[[NSArray alloc]initWithObjects:1,2,3, nil];
// NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:array2];

NSMutableDictionary * dic=[NSMutableDictionary new];
for(int i=0 ; i< array2.count ; i++ ){
   [dic setObject:array1[i] forKey:array2[i]];
}
array1=[[NSArray alloc]initWithObjects:a、b、c、d、e、nil];
array2=[[NSArray alloc]initWithObjects:1,2,3,nil];
//NSDictionary*dic=[[NSDictionary alloc]initWithObjects:array1-forKeys:array2];
NSMutableDictionary*dic=[NSMutableDictionary new];
for(int i=0;i
用作:

array1=[[NSArray alloc]initWithObjects:a,b,c,d,e, nil];
array2=[[NSArray alloc]initWithObjects:1,2,3, nil];
// NSDictionary * dic=[[NSDictionary alloc]initWithObjects:array1 forKeys:array2];

NSMutableDictionary * dic=[NSMutableDictionary new];
for(int i=0 ; i< array2.count ; i++ ){
   [dic setObject:array1[i] forKey:array2[i]];
}
array1=[[NSArray alloc]initWithObjects:a、b、c、d、e、nil];
array2=[[NSArray alloc]initWithObjects:1,2,3,nil];
//NSDictionary*dic=[[NSDictionary alloc]initWithObjects:array1-forKeys:array2];
NSMutableDictionary*dic=[NSMutableDictionary new];
for(int i=0;i
来自文档:

键和值都不能为零;如果需要在字典中表示空值,则应使用NSNull。

来自文档:



键和值都不能为零;如果需要在字典中表示空值,则应使用NSNull。

为两个数组提供相等数量的对象。hmmm。我无法控制数组这就是问题所在没有键的字典称为数组。要为整个数组或数组的每个对象设置键吗?为整个数组设置键,!,,如何为两个数组提供相同数量的对象。hmmm。我无法控制数组这就是问题所在没有键的字典称为数组。要为整个数组或数组的每个对象设置键吗?为整个数组设置键,!,,如何做到这一点阵列不能被编辑我从服务中得到了这一点,正如我在问题中提到的,如果您有相同的密钥,为什么要使用N字典?密钥应该是唯一的。我在这里使用第二种方法中的密钥增量值。数组不能编辑。我从服务中获得它,正如我在问题中提到的,如果您有相同的密钥,为什么要使用N字典?一个键应该是唯一的。我在这里使用第二种方法中增加的键值。明白你的意思了。编辑,明白你的意思了。谢谢。它还需要一些改进。例如,检查零长度。谢谢。它还需要一些改进。例如,检查零长度。