1

これは、他のコードチェックの場合にこれを書くための最良の方法ですか?

// set the default to Italy if countrySaved is null
if (lang == NULL) {
    lang = @"it";
}

// otherwise set the correct lang based on the country chosed and saved in nsuserdefaults
if ([countrySaved isEqual:@"Brazil"]) {
    lang = @"br";
}

else if ([countrySaved isEqual:@"Spain"]) {
    lang = @"es";
}

else if ([countrySaved isEqual:@"Italy"]) {
    lang = @"it";
}

else if ([countrySaved isEqual:@"United States"]) {
    lang = @"us";
}

else if ([countrySaved isEqual:@"United Kingdom"]) {
    lang = @"uk";
}

助けてくれてありがとう

4

2 に答える 2

13

言語IDを辞書に保存します。

NSDictionary *languageIDs = @{
    @"Brazil" : @"br",
    @"Spain" : @"es",
    @"Italy" : @"it",
    @"United States" : @"us",
    @"United Kingdom" : @"uk"
};

lang次に、上記の辞書から単純に割り当てます。

lang = languageIDs[countrySaved];

if (!lang) {
    lang = languageIDs[@"Italy"];
}

または、三項演算子を使用して行うより短い方法:

lang = languageIDs[countrySaved] ?: languageIDs[@"Italy"];

また、おそらくそれらをplistファイルからロードするか、NSString consts最終的に冗長になることを回避するために使用する必要があります。これにより、保守不可能なリテラルがコード全体に散らばります。

于 2013-02-02T16:16:09.773 に答える
2

辞書(key="Country", value="code")を使用して効率的な操作を行うことができます。

于 2013-02-02T16:18:46.053 に答える