Pregunta

I want to get value from NSMutableDictionary.

here is my dictionary :

   {
    "Balloon" =     {
        "fields_id" = 1;
        "fields_list" = "Balloon";
        "posm_details" = "<NBPosm_Sub: 0x828d220>";
    };
    "Booklet" =     {
        "fields_id" = 2;
        "fields_list" = "Booklet";
        "posm_details" = "<NBPosm_Sub: 0x828d7b0>";
    };
    "Brochure" =     {
        "fields_id" = 3;
        "fields_list" = "Brochure";
        "posm_details" = "<NBPosm_Sub: 0x828d890>";
    };
    "Fact tags - 1" =     {
        "fields_id" = 4;
        "fields_list" = "Fact tags - 1";
        "posm_details" = "<NBPosm_Sub: 0x828b760>";
    };
    "Fact tags - 10" =     {
        "fields_id" = 13;
        "fields_list" = "Fact tags - 10";
        "posm_details" = "<NBPosm_Sub: 0x828ab90>";
    };
}

Above NBPosm_Sub is one of my custom class, i.e.

NBPosm_Sub.h :-

#import <Foundation/Foundation.h>

@interface NBPosm_Sub : NSObject

@property (nonatomic, retain) NSString *posmId;
@property (nonatomic, retain) NSString *posmName;
@property (nonatomic, retain) NSString *posmQuantity;
@property (nonatomic, retain) NSString *posmRemarks;
@property (nonatomic, retain) NSString *posmAfterImageId;
@property (nonatomic, retain) NSString *posmBeforeImageId;

@property (nonatomic, retain) NSMutableDictionary *dictPosmDetails;

@end


NBPosm_Sub.m :-

#import "NBPosm_Sub.h"

@implementation NBPosm_Sub

@synthesize posmId, posmName, posmQuantity, posmRemarks, posmAfterImageId, posmBeforeImageId, dictPosmDetails;

- (id) initWithCoder: (NSCoder *)coder
{
    self = [[NBPosm_Sub alloc] init];
    if (self != nil)
    {
        self.posmId = [coder decodeObjectForKey:@"posmId"];
        self.posmName = [coder decodeObjectForKey:@"Name"];
        self.posmQuantity = [coder decodeObjectForKey:@"Quantity"];
        self.posmRemarks = [coder decodeObjectForKey:@"Remarks"];

        self.posmAfterImageId = [coder decodeObjectForKey:@"Picture2Id"];//after
        self.posmBeforeImageId = [coder decodeObjectForKey:@"Picture1Id"];//before

        self.dictPosmDetails=[coder decodeObjectForKey:@"dictPosmDetails"];
    }
    return self;
}

- (void)encodeWithCoder: (NSCoder *)coder
{
    [coder encodeObject:posmId forKey:@"posmId"];
    [coder encodeObject:posmName forKey:@"Name"];
    [coder encodeObject:posmQuantity forKey:@"Quantity"];
    [coder encodeObject:posmRemarks forKey:@"Remarks"];

    [coder encodeObject:posmAfterImageId forKey:@"Picture2Id"];//after
    [coder encodeObject:posmBeforeImageId forKey:@"Picture1Id"];//before

    [coder encodeObject:dictPosmDetails forKey:@"dictPosmDetails"];
}

@end

Can you please help me to get key values from dictionary? Thanks

How can i make my dictionary output should be like :

{
    {
        "fields_id" = 1;
        "fields_list" = "Balloon";
        "posm_details" = "<NBPosm_Sub: 0x828d220>";
    };
    {
        "fields_id" = 2;
        "fields_list" = "Booklet";
        "posm_details" = "<NBPosm_Sub: 0x828d7b0>";
    };
    {
        "fields_id" = 3;
        "fields_list" = "Brochure";
        "posm_details" = "<NBPosm_Sub: 0x828d890>";
    };
    {
        "fields_id" = 4;
        "fields_list" = "Fact tags - 1";
        "posm_details" = "<NBPosm_Sub: 0x828b760>";
    };
    {
        "fields_id" = 13;
        "fields_list" = "Fact tags - 10";
        "posm_details" = "<NBPosm_Sub: 0x828ab90>";
    };
}

How to remove header from all scopes ?

¿Fue útil?

Solución

Check one time below code...
At place of dict use your dictionary which containing the data:

NSString *strid = [[dict objectForKey:@"Fact tags"] objectForKey:@"fields_id"];
NSLog(@"str = %@", strid);

or you want get the list complete dictionary use the code but you have to assign value to string or wherever want.

NSString *str = [NSString stringWithFormat:@"Fact tags\nfields_id=%@\nfields_list=%@\nposm_details=%@", [[dict objectForKey:@"Fact tags"] objectForKey:@"fields_id"], [[dict objectForKey:@"Fact tags"] objectForKey:@"fields_list"], [[dict objectForKey:@"Fact tags"] objectForKey:@"posm_details"]];
NSLog(@"%@", str);

Otros consejos

Try this code

             id obj1 = [arr(yourresponce) objectAtIndex:0];
             id obj2 = [obj1 valueForKey:@"Balloon"];
             for(int i=0; i <[obj2 count]; i++)
             {
                NSMutableDictionary *dict = [obj2 objectAtIndex:i];
                NSString *str = [dict objectForKey:@"fields_id"];
             }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top