2014-11-11 1 views
0

В моем приложении мне нужно вставить элемент NSMutableArray в NSMutableDictionary. Мой массив как следующие:Вставить объект NSMutableArray в NSMutableDictionary

[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" 

Кто-нибудь может помочь мне найти решение, чтобы сделать этот материал? Спасибо!

UPDATE

Я пытался использовать код предложить мне по trojanfoe, и она работает, но это не совсем то, что мне нужно. Я получаю данные, хранящиеся в моем NSMutableArray, путем разбора CSV-файла. Файл 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?

UPDATE 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); 

И я получаю с ума: когда я выполняю код, который я разместил здесь это создать для me массив словарей, но в этом массиве я всегда видел один и тот же словарь. я пытался выполнить его с помощью контрольных точек, и я вижу при = 1 она меняет свою finalArray во время я создаю словари, почему это изменить мой finalArray перед выполнением инструкции [finalArray addObject:rowDataDict];

+0

Итак, вам нужен массив словарей или словарь массивов? – trojanfoe

+0

Извините, что я видел ваше уведомление только сейчас, потому что я пытаюсь найти решение, но если вы посмотрите на мой вопрос, я обновил его с помощью кода, который я написал, чтобы создать массив словарей. Надеюсь, вы можете помочь мне исправить это. – lucgian841

ответ

2

Это может помочь вам

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"]); 
    } 
+0

спасибо, что ответили +1. –

 Смежные вопросы

  • Нет связанных вопросов^_^