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

您可以使用 Dictionary(key="Country", value="code")进行高效操作。

于 2013-02-02T16:18:46.053 回答