iPhone JSON - 迭代NSArray并获取值

tmu*_*ton 1 iphone json objective-c nsarray

我一直在努力解决这个问题(我昨晚一直在醒来,把头撞在墙上)但希望有人在这里可以帮助我.

我已经使用本教程连接到我的JSON数据源(http://www.mobileorchard.com/tutorial-json-over-http-on-the-iphone/)并且它工作正常但我现在想要获取值(通过对象键我认为).

我的json数据如下:[{"Id":"1","Name":"Richard","NameOfFile":"1.jpg"},{"Id":"395","Name":"亚历克斯", "NameOfFile": "390.jpg"}]

我用来连接它的代码如下.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    [connection release];

    NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
    [responseData release];

    SBJSON *json = [[SBJSON new] autorelease];
    NSArray *myArray = [json objectWithString:responseString error:nil];
    [responseString release];   

    for (int i = 0; i < [myArray count]; i++)
    {
        for(int colIndex = 0; colIndex < 5; colIndex++) 
        {
            UIImage * myimage = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: @"http://www.goweruk.com/Images/Uploaded/220/873.jpg"]]];
            UIImageView *myimageview = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,50.0f, 50.0f)];
            [myimageview setImage:myimage];

            CGRect frameRect = myimageview.frame;
            frameRect.origin.x = (frameRect.size.width + 14) * colIndex;
            frameRect.origin.y = (frameRect.size.height + 14) * i;
            myimageview.frame = frameRect;

            [self.view addSubview:myimageview];
            [myimageview release];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我想要做的就是在循环中,获得一个项目值.有谁知道我会怎么做?

Jac*_*kin 8

NSArray是一个NSDictionary对象数组,因此您首先需要使用所需索引获取字典objectAtIndex:,然后使用for..in以下方法遍历字典:

for (int i = 0; i < [myArray count]; i++)
{
    NSDictionary *dict = [myArray objectAtIndex:i];
    for(NSString *key in dict) {
       //do something with key or [dict objectForKey:key];
    }
}
Run Code Online (Sandbox Code Playgroud)