2013-04-22 8 views
0

Я разбираю XML и сохраняю результат в NSMutableArray. Когда я NSLog,Получить определенное значение от NSMutableArray

NSLog(@"Data : %@",_data); 

Я получаю

Data : (
     { 
     SessionToken = 9e72dd029e0e8268380b919356881935; 
    } 
) 

Я хочу только 9e72dd029e0e8268380b919356881935 из массива. Какое лучшее решение для этого?

EDIT: Одновременно будет проходить только один сеанс.

+0

Ваши данные массив словаря. Вам просто нужно использовать ключ «SessionToken», и вы получите значение. – Anupdas

+0

Будет ли только один сеансToken в любое время? – Anupdas

+0

NSDictionary может отображать только один объект в один экземпляр ключа. – Tim

ответ

1

Поскольку будет только одна сессия в то время.

NSDictionary *session = [_data lastObject]; 
NSString *sessionToken = session[@"SessionToken"]; 

ИЛИ с литералы

NSString *sessionToken = _data[0][@"SessionToken"]; 
+0

@Viral В соответствии с OP в массиве будет только один объект. Если я не использую литералы, я всегда использую lastObject, поскольку он не будет разбиваться, если нет объектов. Вторая альтернатива заключалась в том, чтобы показать, как это можно сделать с помощью литералов. – Anupdas

6

Вы можете попробовать этот код:

for (NSDictionary *data1 in _data) { 
    NSlog("session token %@",[data1 objectForKey:@"SessionToken"]);//Other wise add into another array which contain session token.. only.. 
} 
+1

Я получаю это, ожидаемое ']' – jack

1
if ([_data count]) { 
    NSDictionary *dic = [_data objectAtIndex:0]; 
    NSLog(@"Data : %@",[dic objectForKey:@"SessionToken"]); 
} 
0
for (NSDictionary *data1 in _data) { 
    NSlog("session token %@",[data1 valueForKey:@"SessionToken"]); 
} 
+0

Вы могли бы расширить этот ответ/объяснить его немного больше. – Rogue

+0

@Rogue возвращает значение, связанное с данным ключом. Если ваше значение json является массивом с использованием массива, как [[data1 valueForKey: @ "SessionToken"] objectAtIndex: 0] – karthikeyan