繁体   English   中英

如何设置不带键的NSDictionary

[英]how to set NSDictionary without Keys

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

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)'

现在我只想为键设置为1,2,3的a,b,c词典。

就像无法编辑数组一样

我怎样才能做到这一点

为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]];
}

使用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++;
}

希望这可以帮助!!!

从文档:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM