-1

I stuck somewhere. I want to create NSMutableDictionary in my Model Class which name is Data.h & .m and i want to some add some object from my controller. I tried some Methots but i couldnt do it ..

there is my model .m file

#import "Data.h"
//Dictiniory and Array Definitions...

NSMutableArray *plist;
NSMutableDictionary *kartlarDict;
@implementation Data

+(void)load{
    plist = [[NSMutableArray alloc] initWithObjects:@"Garanti", nil];
}

+(NSMutableArray *)getPlistArray {
    return plist;
}

//set Methots for kartlarDict...
-(id)initWithBankaAdi:(NSString *)aBankaAdi KartAdi:(NSString *)aKartAdi{`

        bankaFK = @"BankaAdi";
         kartFK  = @"KartAdi";

        bankaAdi = aBankaAdi;
        kartAdi  = aKartAdi;

        NSMutableDictionary *tmpKartlarDict = [[NSMutableDictionary alloc]     initWithObjectsAndKeys:
                                           bankaAdi,bankaFK,
                                           kartAdi,kartFK, nil];

         [kartlarDict addEntriesFromDictionary:tmpKartlarDict];

        return self;
}

//get Methots for kartlarDict...
+(NSMutableDictionary *)getKartlarDict{
    return kartlarDict;
}

@end

there is my .m CONTROLLER file.

- (void)viewDidLoad
{
    [super viewDidLoad];

    [Data getKartlarDict];
    [Data getPlistArray];
     NSLog(@"%@",[Data getKartlarDict]);

     Data *p1 = [[Data alloc] initWithBankaAdi:@"HSBC" KartAdi:@"Advantage Kart"];

     kartlarListe = [[NSMutableArray alloc] initWithObjects:[Data getKartlarDict], nil];
}

I only want to create some NSMutableDict or Array and i want to set them from my controller file and of course i want to get them back to all other controller file.

How can i do this ? Please help !

Note : I'am newbie now but i always sleep 5 hour for these days coz i want to learn this language a.s.a.p. I watched too many youtube videos, and apple resource..

Hot Licks
  • 47,103
  • 17
  • 93
  • 151
emresancaktar
  • 1,507
  • 17
  • 25
  • It's unclear what you're doing or what your main question is. It appears that you never create your kartlarDict object. But you also express a desire to pass values between objects, and that's a whole separate discussion -- very simple if you understand object-oriented principles, but very difficult if you don't. – Hot Licks Mar 06 '14 at 21:40

2 Answers2

0

In your init method kartlarDict is not initialized:

-(id)initWithBankaAdi:(NSString *)aBankaAdi KartAdi:(NSString *)aKartAdi{`
    bankaFK = @"BankaAdi";
    kartFK  = @"KartAdi";
    bankaAdi = aBankaAdi;
    kartAdi  = aKartAdi;

    NSMutableDictionary *tmpKartlarDict = [[NSMutableDictionary alloc]     initWithObjectsAndKeys:
                                       bankaAdi,bankaFK,
                                       kartAdi,kartFK, nil];

    [kartlarDict addEntriesFromDictionary:tmpKartlarDict];

// kartlarDict is nil here!!!!!!!!!!!!!!
    return self;
}

change

[kartlarDict addEntriesFromDictionary:tmpKartlarDict];

to

kartlarDict = [NSMutableDictionary dictionaryWithDictionary:tmpKartlarDict]

or even

kartlarDict = [tmpKartlarDict mutableCopy]; // it will be enought
Avt
  • 16,927
  • 4
  • 52
  • 72
0

Try this, and I have explained:

    -(id)initWithBankaAdi:(NSString *)aBankaAdi KartAdi:(NSString *)aKartAdi{
        if(self = [self init]){ //First of all, you should call super init or self basic init method 
           //following code will be more clear.
           NSMutableDictionary *tmpKartlarDict = [[NSMutableDictionary alloc]     initWithObjectsAndKeys:
                                               aBankaAdi,@"BankaAdi",
                                               aKartAdi, @"KartAdi", nil];

           if(!kartlarDict){ //Maybe kartlarDict init in the above basic init method, if not, ignore the judgement.
               kartlarDict = [NSMutableDictionary dictionaryWithDictionary:tmpKartlarDict]
           }
           else{
              [kartlarDict addEntriesFromDictionary:tmpKartlarDict];

           }
        }
        return self;
    }
simalone
  • 2,768
  • 1
  • 15
  • 20