如何使用循环在nsmutablearray索引处插入字典

时间:2014-09-05 07:38:46

标签: ios nsmutablearray

int a=0;
NSString *str;
str=txt_Field.text;
int n=[addArray count];
if (n==0)
{
    [addDic setObject:str forKey:@"name"];
    [addArray insertObject:addDic atIndex:0];
}
else
{
    for ( i=0; i<n; i++)
    {
        NSString *getString=[[addArray objectAtIndex:i] valueForKey:@"name"];
        if (![str isEqualToString:getString])
        {
            continue;
        }
        else
        {
            a++;
            NSLog(@" a>>>>  %d",a);
            break;
        }
    }
    if (a==0)
    {
        [addDic setObject:str forKey:@"name"];
        [addArray insertObject:addDic atIndex:i];
        NSLog(@" index >>>%d",i);
    }
    else
    {
        NSLog(@"Name already exist...");
    }
}
NSLog(@"Array>> %@",addArray);
NSLog(@"Dictionary>> %@",addDic);

当我使用textfield将名称插入到字典中之后,我将其插入到数组索引中,它显示了字典中最后插入的值,请帮助我。

1 个答案:

答案 0 :(得分:1)

试试这个..

- (IBAction)saveText:(UIButton *)sender
{
    NSDictionary * textDic = [[NSMutableDictionary alloc] initWithObjectsAndKeys:_textField.text,@"name", nil];
    BOOL exist = NO;

    if (!textArray) // instance variable NSMutableArray * textArray;
    {
        textArray = [[NSMutableArray alloc]initWithObjects:textDic,nil];
        NSLog(@"first time");

    }
    else
    {
        for (NSDictionary * nameDic in textArray)
            if ([[nameDic objectForKey:@"name"] isEqualToString:[textDic objectForKey:@"name"]])
             {
                    exist = YES;
                    break;
             }

        if (exist)
        {
            NSLog(@"name already existed");
        }
        else
        {
            [textArray insertObject:textDic atIndex:textArray.count];

            for (NSDictionary * nameDic in textArray)
                NSLog(@"saved names:%@",[nameDic objectForKey:@"name"]);
        }

    }


}