我需要为我的 iPhone 应用程序中的不同配置和设置存储许多Facebook 应用程序 ID和Twitter 消费者密钥。
我知道我这样做的方式不是最好的,因为它有太多的if else
陈述。使用正确的Objective-C 设计模式来完成这项任务的最佳方法是什么?
这是我的代码:
- (id) init {
self = [super init];
if (!self) return nil;
keyNames = [[NSArray arrayWithObjects:
@"facebookAppId",
@"facebookLocalAppId",
@"twitterConsumerKey",
@"twitterSecret",
nil]retain];
if (MainLanguage == @"English") {
keys = [[NSArray arrayWithObjects:
@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", //facebookAppId
@"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", //facebookLocalAppId
@"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", //twitterConsumerKey
@"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", //twitterSecret
nil]retain];
dictionary = [[NSDictionary dictionaryWithObjects:keys forKeys:keyNames]retain];
}
else if (MainLanguage == @"Spanish") {
keys = [[NSArray arrayWithObjects:
@"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", //facebookAppId
@"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", //facebookLocalAppId
@"cccccccccccccccccccccccccccccccc", //twitterConsumerKey
@"dddddddddddddddddddddddddddddddd", //twitterSecret
nil]retain];
dictionary = [[NSDictionary dictionaryWithObjects:keys forKeys:keyNames]retain];
} else if (MainLanguage == @"French") {
//etc...
} else if (MainLanguage == @"Italian") {
//etc...
}
//etc..
return self;
}
-(void)dealloc {
[keyNames release];
[keys release];
[dictionary release];
[super dealloc];
}