0

我有以下代码

 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); 返回我所期望的

Files: (
    {
    UserNumber = 1;
}
)

然而NSLog(@"output: %@", userNumber); 返回NULL

我需要帮助弄清楚为什么 NSString *userNumber = [result objectForKey:@"UserNumber"]; 似乎没有按应有的方式返回“1”。

4

1 回答 1

2

将您的代码更改为:

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

file objectForKey...,不是result objectForKey...。您正在遍历files数组,其中的每个条目都被标识为file用于 for 循环中的代码的目的。

于 2012-02-24T01:23:58.417 回答