Как разделить мою NSString на два разных массива, т. Е. Ключ и значение в Objective- C? - PullRequest
0 голосов
/ 01 мая 2020

Привет, ребята. У меня есть одна строка. Например

"Имя = Михир &, Возраст = 34 &, Аллергия = &, Симптомы = Лихорадка, боль в горле &, Проверено = Нет &, Штат = Род-Айленд"

Так что мне нужно преобразовать эту строку в ключ 2 массивов и значения, например, один массив до = и другой массив после, равный.
Я сделал некоторый код, но я не знаю, что делать next!
Пожалуйста, смотрите мой код ниже:

strCustomFields = _incident.CustomFields;
NSLog(@"strCustomFields = %@",strCustomFields);
NSArray *items = [strCustomFields componentsSeparatedByString:@"&,"];  

Здесь я разделился на массив. Теперь у меня есть 6 массивов, но теперь, как сделать мой массив ключом и значением, как показано ниже?
array1 = Имя, Возраст, Аллергия, Симптомы, Проверено, Состояние
массив2 = Михир, 34 года, Лихорадка Ангина, Нет, Род-Айленд

Ответы [ 2 ]

1 голос
/ 01 мая 2020

хорошо, вы можете перебирать элементы, разбивать каждый элемент на '=' и помещать ключи и значения в два разных NSMUtableArray

, но, возможно, будет лучше использовать NSDictionary для хранения пар ключ-значение

могут быть другие способы, в зависимости от того, что вы пытаетесь сделать.

0 голосов
/ 01 мая 2020

Получил мой ответ, может быть, это долгий путь, но это работает для меня.

NSArray *items = [strCustomFields componentsSeparatedByString:@"&,"];
NSArray *subArr = nil;
NSMutableArray *arr1 = [[NSMutableArray alloc] init];
for (NSString* currentString in items) {
    subArr = [currentString componentsSeparatedByString:@"="];
    [arr1 addObject:[subArr objectAtIndex:0]];
    [arr1 addObject:[subArr objectAtIndex:1]];
    NSLog(@"subArr = %@", subArr);
}
NSLog(@"arr1 = %@", arr1);  
for (int i = 0; i< [arr1 count]/ 2; i++) {  
            myCustomView.lbltitle.text = [NSString stringWithFormat:@"%@", [arr1 objectAtIndex:(i *2)]];
            myCustomView.lblvalue.text = [NSString stringWithFormat:@"%@", [arr1 objectAtIndex:(i * 2) + 1]];
        }
...