初期化された静的ディクショナリがあり、データがdifferent.mファイルに追加されています。現在、ビューコントローラにその静的ディクショナリが必要です。辞書には実際にはキーとしてキャリア名が含まれ、値としてそれぞれの番号が含まれているので、私が一番やりたいのは、電話がどのキャリアに属しているかを確認してから、対応する番号を取得することです。静的ディクショナリが形成された.mファイルはConfig.mであり、実際に静的ディクショナリを返すメソッドがあります。
+ (NSDictionary*) getMccMncToCodeDictionary
{
return mccMncLISDictionary;
}
私がViewControllerで行ったことは、次のとおりです。
Config* network_number = [[Config alloc] init];
network_number = [Config getMccMncToLISCodeDictionary];
NSLog(@"network number:::%@", network_number);
私のコンソールでは、
network number:::(null)
私が受け取る警告(黄色のエラー)は、ViewControllerのコードの2行目にある「NSDictionary*から'Config*_strong'に割り当てられている互換性のないポインター型」です。
私のinitLISDictionaryコード:
- (void) initLISDictionary
{
NSString* MCC = @"520";
NSString* CAT3G = [NSString stringWithFormat:@"%@00",MCC];
NSString* AIS = [NSString stringWithFormat:@"%@01",MCC];
NSString* CAT_CDMA =[NSString stringWithFormat:@"%@02",MCC];
NSString* TOT3G = [NSString stringWithFormat:@"%@15",MCC];
NSString* DTAC = [NSString stringWithFormat:@"%@18",MCC];
NSString* AIS_GSM_1800 = [NSString stringWithFormat:@"%@23",MCC];
NSString* TRUE_MOVE_H = [NSString stringWithFormat:@"%@88",MCC];
NSString* TRUE_MOVE = [NSString stringWithFormat:@"%@99",MCC];
mccMncLISCodeDictionary = [NSMutableDictionary dictionary];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:2] forKey:CAT3G];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:1] forKey:AIS];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:2] forKey:CAT_CDMA];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:4] forKey:TOT3G];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:3] forKey:DTAC];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:1] forKey:AIS_GSM_1800];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:5] forKey:TRUE_MOVE];
[mccMncLISCodeDictionary setValue:[NSNumber numberWithInt:5] forKey:TRUE_MOVE_H];
}