私はObjective-CとiOSの開発には新しく、正しいことをしているかどうかはわかりません。とにかく、基本的には、私はファイルのConfigs.plistを持っています。これは現在、Key(Value:Customer:GenericとShort_Code:Default)の2つのセットを持っています。 Objective-Cでは、すべてにアクセスできるグローバル構成を作成する方法はありますか
extern NSString * const CUSTOMER;
extern NSString * const SHORT_CODE;
@interface Configs
+ (void)initialize;
+ (NSDictionary *)getConfigs;
@end
Configs.h
Configs.m
#import "Configs.h"
NSString * const CUSTOMER = @"Customer";
NSString * const SHORT_CODE = @"Short_Code";
static NSDictionary *myConfigs;
@implementation Configs
+ (void)initialize{
if(myConfigs == nil){
NSString *path = [[NSBundle mainBundle] pathForResource:@"Configs" ofType:@"plist"];
settings = [[NSDictionary alloc] initWithContentsOfFile:path];
}
}
+ (NSDictionary *)getConfigs{
return settings;
}
@end
とテストファイルTest.m上:私はこれらを作成したので、これらのデータは、すべてのクラスに簡単にアクセスできるようにしたいです:
NSLog(@"Customer: %@", [[Configs getConfigs] objectForKey:CUSTOMER]);
NSLog(@"Short Code: %@", [[Configs getConfigs] objectForKey:SHORT_CODE]);
このアプローチは機能しますが、これを行うにはより良い方法があるかどうかを知りたいと思います。
ありがとうございます。私はあなたが何を意味しているのかよく理解していませんでしたが、これは私がもっと読む必要があるトピックです。とにかく、はい、実行中に構成は変更されません。構成は基本的にビルド前の要件です。 – yoninja
ええ、私はあなたの設定が変更可能であることをかなり確信していたので、変更可能な設定をどう扱うかについていくつかの洞察を与えたいと思います。しかし、それが静的であれば、あなたのソリューションは非常に良いと思うよりも。 – lawicko