2012-02-24 7 views
0

Я следующий кодIOS NSJSON Возвращение Null

hostStr = [hostStr stringByAppendingString:post]; 
NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];  
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];  

NSError *error = nil; 
NSDictionary *result = [NSJSONSerialization 
         JSONObjectWithData:dataURL 
         options:kNilOptions 
         error:&error]; 

NSArray *files = [result objectForKey:@"GV_Return"]; 

NSLog(@"Files: %@", files); 

// For Each Key we seperate the data and add it to an object to be used. 
for (NSDictionary *file in files) 
{   
NSString *userNumber = [result objectForKey:@"UserNumber"]; 
NSLog(@"output: %@", userNumber); 
} 

Проблема у меня в том, что NSLog (@ "Files:% @", файлы); возвращает то, что я ожидаю

Files: (
    { 
    UserNumber = 1; 
} 
) 

Однако NSLog (@ "выход:% @", userNumber); Возвращает NULL

Мне нужно помочь выяснить, почему NSString * userNumber = [результат objectForKey: @ "UserNumber"]; похоже, не возвращает «1», как следует.

ответ

2

Изменить код:

for (NSDictionary *file in files) 
{   
NSString *userNumber = [file objectForKey:@"UserNumber"]; 
NSLog(@"output: %@", userNumber); 
} 

т.е. file objectForKey..., не result objectForKey.... Вы выполняете итерацию через массив files, причем каждая запись в нем идентифицируется как file для целей кода в цикле for.

+0

Yup понял это и отправлял решение, когда вы ответили. Я только что скопировал/вставил NSArray * files = [result objectForKey: @ "GV_Return"]; и забыл изменить результат на файл. Это то, что я получаю за ярлык. Благодарю. – KMG

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