如果以更好的方式检查其他代码,我怎么能写这个呢?

han*_*Dev 1 iphone conditional objective-c ios

如果是其他代码检查,这是写这个的最好方法吗?

// 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";
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Reg*_*ent 13

将语言ID存储在字典中:

NSDictionary *languageIDs = @{
    @"Brazil" : @"br",
    @"Spain" : @"es",
    @"Italy" : @"it",
    @"United States" : @"us",
    @"United Kingdom" : @"uk"
};
Run Code Online (Sandbox Code Playgroud)

然后只需lang从所述词典中分配:

lang = languageIDs[countrySaved];

if (!lang) {
    lang = languageIDs[@"Italy"];
}
Run Code Online (Sandbox Code Playgroud)

或者我使用三元运算符做的更短的方式:

lang = languageIDs[countrySaved] ?: languageIDs[@"Italy"];
Run Code Online (Sandbox Code Playgroud)

你也应该从plist文件中加载它们,或者使用它们NSString consts以避免最终的冗余,以及分散在你代码中的不可维护的文字.