【问题标题】:Insert NSMutableArray object in a NSMutableDictionary在 NSMutableDictionary 中插入 NSMutableArray 对象
【发布时间】:2014-11-11 13:21:49
【问题描述】:

在我的应用程序中,我需要在 NSMutableDictionary 中插入 NSMutableArray 的成员。我的数组如下:

[Entity_ID] [Lastname] [Firstname] [Email] [Street] [StreetNr] [Zipcode] [City] [Opt] [Gender]  [Age] [Clicks] [Transactions]

现在我需要创建一个类似以下结构的 NSMutableDictionary:

key = "ID" value = "Entity_ID"
key = "Lastname" value = "Lastname"
key = "Firstname" value = "Firstname"
key = "Email" value = "Email"
key = "Street" value = "Street"
key = "StreetNr" value = "StreetNr"
key = "Zipcode" value = "Zipcode"
key = "City" value = "City"
key = "Opt" value = "Opt"
key = "Gender" value = "Gender"
key = "Age" value = "Age"
key = "Clicks" value = "Clicks"
key = "Transactions" value = "Transactions"

有人可以帮我找到解决方法吗? 谢谢!

更新

我尝试使用 trojanfoe 建议我的代码,它可以工作,但这并不是我所需要的。我通过解析 CSV 文件将他的数据存储在我的 NSMutableArray 中。 CSV 文件具有以下结构:

Entity_ID   Lastname    Firstname   Email   Street  StreetNr    Zipcode City    Opt Gender  Age Clicks  Transactions
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k
ID          Surname     Name        mail    address number      zip     city    x   female  xy  z       k

如果我使用 tojanfoe 向我建议的代码,我可以创建一个 NSMutableDictionary,其中我只保存我的 CSV 的第一行,现在我如何对我的 CSV 的所有行执行相同的操作?

更新 2

我以不同的方式制作,这是我的代码:

 NSMutableArray *finalArray = [[NSMutableArray alloc]init];

    NSMutableDictionary *rowDataDict = [[NSMutableDictionary alloc]init];

    int i = 0;
    int k = 0;

    for (int j = 0; j < cleanedArray.count; j++) {
        while (i < 11) {
            if (k < cleanedArray.count) {
                NSLog(@"%@", finalArray);
                 NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Lastname"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Firstname"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Email"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Street"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"StreetNr"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Zipcode"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"City"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Opt"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Gender"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Age"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Clicks"];
                k++;
                i++;
                NSLog(@"%@", finalArray);
                NSLog(@"k = %d, i = %d", i, k);
                [rowDataDict setObject:cleanedArray[k] forKey:@"Transactions"];
                NSLog(@"%@", finalArray);
            }

        }
        [finalArray addObject:rowDataDict];
        NSLog(@"%@", finalArray);
        i = 0;
    }

    NSLog(@"%@", finalArray);

我快疯了:当我执行我在这里发布的代码时,它为我创建了一个字典数组,但在这个数组中我总是看到同一个字典。 我尝试使用断点执行它,我看到 j = 1 它在我创建字典期间更改了我的finalArray,为什么它在执行指令[finalArray addObject:rowDataDict]; 之前修改我的finalArray

【问题讨论】:

  • 那么你想要一个字典数组还是数组字典?
  • 对不起,我刚才看到了您的通知,因为我正在寻找解决方案,但是如果您查看我的问题,我使用我编写的代码更新了它以创建字典数组.我希望你能帮我解决它

标签: objective-c nsmutablearray nsmutabledictionary


【解决方案1】:

或许对你有帮助

    NSMutableDictionary *info = [[NSMutableDictionary alloc] init];
    [info setObject:@"sumit" forKey:@"name"];
    [info setObject:@"22" forKey:@"age"];

    NSMutableDictionary *info1 = [[NSMutableDictionary alloc] init];
    [info1 setObject:@"golu" forKey:@"name"];
    [info1 setObject:@"26" forKey:@"age"];

    NSMutableDictionary *info3 = [[NSMutableDictionary alloc] init];
    [info3 setObject:@"Bholu" forKey:@"name"];
    [info3 setObject:@"20" forKey:@"age1"];

    NSMutableArray *allInfor = [[NSMutableArray alloc] init];
    [allInfor addObject:info];
    [allInfor addObject:info1];
    [allInfor addObject:info3];

    for (int i = 0; i<[allInfor count]; i++) {
        NSMutableDictionary *dicinfo = [allInfor objectAtIndex:i];
        NSLog(@"name is :- %@, age is:- %@",[dicinfo valueForKey:@"name"], [dicinfo valueForKey:@"age"@"age1"]);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多