Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将对象添加到我的模型(NSObject类)NSMutableDictionary_Ios_Iphone_Objective C_Nsmutablearray_Nsobject - Fatal编程技术网

Ios 将对象添加到我的模型(NSObject类)NSMutableDictionary

Ios 将对象添加到我的模型(NSObject类)NSMutableDictionary,ios,iphone,objective-c,nsmutablearray,nsobject,Ios,Iphone,Objective C,Nsmutablearray,Nsobject,我被困在某个地方。我想在我的模型类中创建名为Data.h&.m的NSMutableDictionary,我想从我的控制器中添加一些对象。我试过一些方法,但做不到 这是我的model.m文件 #import "Data.h" //Dictiniory and Array Definitions... NSMutableArray *plist; NSMutableDictionary *kartlarDict; @implementation Data +(void)load{ pli

我被困在某个地方。我想在我的模型类中创建名为Data.h&.m的NSMutableDictionary,我想从我的控制器中添加一些对象。我试过一些方法,但做不到

这是我的model.m文件

#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
这是我的.m控制器文件

- (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];
}
我只想创建一些NSMutableDict或数组,我想从我的控制器文件中设置它们,当然我想把它们返回到所有其他控制器文件中

我该怎么做?请帮忙


注意:我现在是新手,但这几天我总是睡5个小时,因为我想尽快学习这门语言。我看了太多youtube视频,apple resource..

在你的init方法
中,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];

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

[kartlarDict addEntriesFromDictionary:tmpKartlarDict];

甚至

kartlarDict = [tmpKartlarDict mutableCopy]; // it will be enought

试试这个,我已经解释过了:

    -(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;
    }

不清楚你在做什么或你的主要问题是什么。看起来您从未创建过Kartlict对象。但是您也表达了在对象之间传递值的愿望,这是一个完整的单独讨论——如果您理解面向对象的原则,这非常简单,但是如果您不理解,这非常困难。谢谢您的回答。已经一年了。我现在回答,我真的很抱歉。谢谢你的回答。已经一年了。我现在回答,我真的很抱歉。
    -(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;
    }