我有3个NSMutableArrays k,名字,数字
K数组包含{a,b,c,d,e,……}
名称数组包含{苹果、袋子、香蕉、汽车、猫、戴尔、大象、……}。
数字数组包含{100,200,300,400,500,600,700,…}
这里所有的3个数组都是动态的。
我想在NSMutableDictionary中添加names[]、numbers[],并以k[]作为键数组。
当我插入字典时,输出应该是这样的。
一个
苹果100
B
200袋
香蕉300
C
汽车400
cat 500
D
dall 600
E
象700
有人能帮帮我吗。谢谢。
发布于 2013-09-14 06:21:22
NSMutableDictionary *result = [NSMutableDictionary new];
for(int i = 0; i<k.count; i++){
unichar letter = [k objectAtIndex:i]; //I'm assuming you have chars in your k array,
// if not, you have to format it here
NSString* name = [names objectAtIndex:i];
if([[name characterAtIndex:0] isEqual:letter]){
NSString *objectToInsert = [NSString stringWithFormat:@"%@: %@", @"name", [numbers objectAtIndex:i]];
[result setObject:objectToInsert forKey:letter];
}
}您可能可以对其进行更多的优化,但它应该可以工作;)
发布于 2013-09-14 06:31:13
尝试使用以下代码
NSMutableDictionary *mydic = [[NSMutableDictionary alloc] init];
For(int k = 0; k < firstArray.count ; k++)
{
NSPredicate *pred =[NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", [firstArray objectAtIndex:k]];
NSArray *filteredArr = [MySecodArray filteredArrayUsingPredicate:pred];
NSString *myString = @"";
for (int t = 0 ; t < filteredArr.count ; t ++)
{
myString = [MyThirdArray objectAtIndex:[MySecodArray indexOfObject:[filteredArr objectAtIndex:t]]];
myString = [[filteredArr objectAtIndex:t] stringByAppendingString:myString];
[mydic setValue: myString forKey:[firstArray objectAtIndex:k]];
myString = @"";
}
}
NSLog(@"%@", myDic);发布于 2013-09-14 06:45:11
您可以这样做,我假设nameArry和NumberArray计数是相同的->
试试这段代码
NSSMutableDictionary *finalDictionary = [[NSSmutableDictionary alloc]init];
for(int i=0;i<k.count;i++)
{
NSString *alphaBet = [k objectAtIndex:i];
//initialize array here
NSMutableArray *insideDictArray = [[NSMutableArray alloc]init];
for(int j=0;j<nameArray.count;j++)
{
NSString *name = [nameArray objectAtIndex:j];
if([name hasPreffix:alphabet])
{
//get Number String
NSString *numberForName = [numberArray objectAtIndex:j];
//Now Concate Number and Name
NSString *concateString = [name stringByAppendingFormat:@"
%@",numberForName];
//Put this in Array we just intialized outside of secondLoop
[insideDictArray addObject:concateString];
}
}
//Now Add array to finalDictionary
[finalDictionary addObject:insideDictArray forKey:alphabet];
}我希望OutPut会是这样的:
finalDictionary =
{
a = [aple 100];
b = [bag 200,banana 300];
.
.
}https://stackoverflow.com/questions/18798868
复制相似问题