如何在IOS中从NSDictionary获取Image Array

时间:2013-02-15 05:45:18

标签: iphone ios xcode web-services

我希望得到所有具有配方ID的图像数组,并希望将此图像数组传递给下一个viewController,但我的问题是我只获得一个图像,我使用recipeDC作为实体类,所有图像的数组应该我使用另一个实体类,或者它也可以通过使用相同的类来完成,我应该怎么做,我卡住请帮助我,

-(NSMutableArray *)getAllRecipiesByUserId:(RecipeDC *)recipeid
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] init];

     NSString *url = [NSString stringWithFormat:@"%@get_all_recipies_by_user_id&user_id=%d",kWSURL,recipeid.user_id];


    NSDictionary * returnDict = (NSDictionary *) [self callWebService:url];
    if([returnDict objectForKey:@"response"])
    {
        NSDictionary * returnDictSuccess = (NSDictionary *) [returnDict objectForKey:@"response"];
        NSArray *returnedDealArray = [returnDictSuccess objectForKey:@"recipies"];

        RecipeDC *recpie = [[RecipeDC alloc] init];
        for(NSDictionary *dealDict in returnedDealArray)
        {

            recpie.recipe_id=[[dealDict objectForKey:@"recipe_id"]intValue ];
            recpie.category_id=[[dealDict objectForKey:@"category_id"]intValue ];
            recpie.user_id=[[dealDict objectForKey:@"user_id"]intValue ];
            recpie.recipe_name = [dealDict objectForKey:@"recipe_name" ];
            recpie.recipe_detail = [dealDict objectForKey:@"recipe_detail"];


            NSArray *img = [dealDict objectForKey:@"images"];

           for(NSDictionary *dealDict in img)
            {
               recpie.recipie_img_id=[[dealDict objectForKey:@"recipe_images_id"]intValue];
                recpie.recipe_id=[[dealDict objectForKey:@"recipe_id"]intValue];
                recpie.recipie_img_url=[dealDict objectForKey:@"image_url"];

           }
            [dataArray addObject:recpie];
        NSLog(@"arr count is %u",[dataArray count]);

        }
    }
    return dataArray;

}

1 个答案:

答案 0 :(得分:1)

你已经完成了

RecipeDC *recpie = [[RecipeDC alloc] init];
    for(NSDictionary *dealDict in returnedDealArray)
    {

应该是

    for(NSDictionary *dealDict in returnedDealArray)
    {
       RecipeDC *recpie = [[RecipeDC alloc] init];

在循环内..

<强>被修改 要获取图像数组,您可以保存正在执行的整个数组字典

NSArray *img = [dealDict objectForKey:@"images"];

       for(NSDictionary *dealDict in img)
        {
           recpie.recipie_img_id=[[dealDict objectForKey:@"recipe_images_id"]intValue];
            recpie.recipe_id=[[dealDict objectForKey:@"recipe_id"]intValue];
            recpie.recipie_img_url=[dealDict objectForKey:@"image_url"];

       }

相反,将RecipeDC类中的属性声明为NSArray * images;并且只需执行以下操作

recpie.images=[dealDict objectForKey:@"images"];